2015-01-15 10 views
5

ich nach dem Tutorial auf Hangfire.io: http://docs.hangfire.io/en/latest/tutorials/send-email.htmlDer Typ oder Namespace-Name ‚Hangfire‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)

Allerdings, wenn ich kopieren und einfügen die bereitgestellte ~/Views/E-Mails/NewComment.cshtml Code:

@model Hangfire.Mailer.Models.NewCommentEmail 

To: @Model.To 
From: [email protected] 
Subject: New comment posted 

Hello, 
There is a new comment from @Model.UserName: 

@Model.Comment 

<3 

ich lief in den folgenden Fehler:

Error 2 The type or namespace name 'Hangfire' could not be found (are you missing a using directive or an assembly reference?) 
Error 3 The name 'Model' does not exist in the current context 

Modelle/NewCommentEmail.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Postal; 

namespace HangFire.Mailer.Models 
{ 
    public class NewCommentEmail : Email 
    { 

     public string To { get; set; } 
     public string UserName { get; set; } 
     public string Comment { get; set; } 
    } 
} 

Es scheint, als ich fast jede andere Art von Ansichten erstellen: Views/E-Mail: "MVC 5 Ansicht Seite (Razor), MVC 5 Ansicht Seitenlayout (Razor) ...", zeigt die Seite alle Elemente mit "@" vorangestellt, wie im aktuellen Kontext nicht gefunden werden kann. Der Name des Projekts Soln lautet "Hangfire.Mailer".

+0

Können Sie Ihre Klassendefinition für 'Hangfire.Mailer.Models.NewCommentEmail' anzeigen? – Shoe

+0

Sie können das '@' in 'From: mailer @ example.com' umgehen, indem Sie zwei @ setzen:' From: mailer @@ example.com' –

+0

Es werden immer noch Fehler für Model und Hangfire angezeigt. – jerryh91

Antwort

7

C# ist Groß- und Kleinschreibung, so sollten Sie Hangfire oder HangFire verwenden.

Jetzt sind Sie mit Großbuchstaben in der Definition:

namespace HangFire.Mailer.Models 

Aber Klein in der Referenz:

@model Hangfire.Mailer.Models.NewCommentEmail 

Die Seite, die Sie Klein im Namensraum verknüpft verwendet:

namespace Hangfire.Mailer.Models 
0

@ Ulfs Antwort scheint richtig zu sein, aber Sie haben erwähnt, dass auch jeder Code, der mit @ beginnt, nicht funktioniert König auch (wenn ich richtig verstanden habe).

Haben Sie eine web.config-Datei in Ihrem Views-Ordner? Sie benötigen es, um Rasierer und andere Sachen zu konfigurieren. Wenn dies nicht der Fall ist, erstellen Sie ein neues Projekt und kopieren Sie die generierte Datei Views/web.config in Ihren eigenen Ordner.

Verwandte Themen