2014-04-09 14 views
6

sto nuovo a MVC, e ho seguito un tutorial per la creazione di una pagina di modulo di contatto, ma questo messaggio di errore: 'modelli' nome del namespace non esisteCostruire un modulo di contatto in Umbraco 7

Controller - ContactSurfaceController Cs

namespace test.Controllers { 
public class ContactSurfaceController : SurfaceController 

{ 
    [HttpPost] 
    public ActionResult Contact(ContactModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      var sb = new StringBuilder(); 
      sb.AppendFormat("<p>Meddelande: {0}</p>", model.Message); 
      sb.AppendFormat("<p>Namn: {0}</p>", model.Name); 
      sb.AppendFormat("<p>E-post: {0}</p>", model.Email); 
      sb.AppendFormat("<p>Telefon: {0}</p>", model.Phone); 

      library.SendMail("[email protected]", "[email protected]", model.Subject, sb.ToString(), true); 

      return RedirectToUmbracoPage(model.ThankYouPage); 
     } 
     return CurrentUmbracoPage(); 
    } 


} 
} 

modello - ContactModel.cs

namespace test.Models 
{ 
    public class ContactModel 
    { 
     [Required] 
     [DisplayName("Ärende")] 
     public string Subject { get; set; } 
     [Required] 
     [DisplayName("Namn")] 
     public string Name { get; set; } 
     [Required] 
     [DisplayName("E-post")] 
     public string Email { get; set; } 
     [DisplayName("Telefon")] 
     public string Phone { get; set; } 
     [Required] 
     [DisplayName("Ärende")] 
     public string Message { get; set; } 
     public int ThankYouPage { get; set; } 
    } 
} 

parziale sul - ContactForm.cshtml

@model test.Models.ContactModel 

@using (Html.BeginUmbracoForm("Contact", "ContactSurface", null, new {@class = "contact-form" })) 
{ 
    @Html.ValidationSummary(true) 

    <div> 

     @Html.LabelFor(x => x.Subject) 
     @Html.TextBoxFor(x => x.Subject) 
     @Html.ValidationMessageFor(x => x.Subject) 

     @Html.LabelFor(x => x.Message) 
     @Html.TextAreaFor(x => x.Message) 
     @Html.ValidationMessageFor(x => x.Message) 

     @Html.LabelFor(x => x.Name) 
     @Html.TextBoxFor(x => x.Name) 
     @Html.ValidationMessageFor(x => x.Name) 

     @Html.LabelFor(x => x.Phone) 
     @Html.TextBoxFor(x => x.Phone) 
     @Html.ValidationMessageFor(x => x.Phone) 

     @Html.LabelFor(x => x.Email) 
     @Html.TextBoxFor(x => x.Email) 
     @Html.ValidationMessageFor(x => x.Email) 

     @Html.HiddenFor(x => x.ThankYouPage) 

    </div> 
    <input type="submit" value="Skicka" class="btn-accept" /> 
} 

E E'qui ricevo il messaggio di errore nella prima riga View - Contact.cshtml

@using test.Models 
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 

@{ 
    Layout = "uBlogsyBaseSite.cshtml"; 
} 

@Html.Partial("ContactForm", new ContactModel { ThankYouPage = Model.Content.GetPropertyValue<int>("thankYouPage") }) 

Che cosa ho mancato?

Ho davvero bisogno di aiuto con questo, ogni aiuto è apprezzato.

Grazie, Jonas

risposta

3

Dove si intende usare il codice di controllo di superficie e il codice di modello?

Dovrebbe essere memorizzato nel codice app o in una DLL separata.

+0

L'ho memorizzato nella cartella Controllers and Models. Ma questo non dovrebbe causare il messaggio di errore, o? – user3446407

+1

Sì, causa il messaggio di errore. Se sono memorizzati nella cartella "controllers" e "models", è necessario CREARli in modo appropriato usando Visual Studio o msbuild. Ma probabilmente hai configurato un "sito web". E i siti web non compilano file al di fuori del dato app. – dampee

+0

Grazie! Funziona! – user3446407

Problemi correlati