2014-04-09 13 views
6

Tôi đang mới để MVC, và tôi đã theo một hướng dẫn để xây dựng một trang mẫu liên hệ nhưng nhận được thông báo lỗi này: tên không gian tên 'Mô hình' không tồn tạiXây dựng một hình thức liên lạc trong 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(); 
    } 


} 
} 

Người mẫu - 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; } 
    } 
} 

Partial View - 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" /> 
} 

Và Nó rất ở đây tôi nhận được thông báo lỗi trên là người đầu tiên dòng 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") }) 

có tôi bị mất gì?

Tôi thực sự cần trợ giúp với điều này, mọi trợ giúp đều được đánh giá cao.

Cảm ơn, Jonas

Trả lời

3

Nơi nào bạn lưu trữ mã điều khiển bề mặt của bạn và mã số mô hình của bạn?

Nó phải được lưu trữ trong app_code hoặc trong một DLL riêng biệt.

+0

Tôi lưu trữ nó trong thư mục Bộ điều khiển và Mô hình. Nhưng điều đó không nên gây ra thông báo lỗi, hoặc? – user3446407

+1

Có, nó gây ra thông báo lỗi. Nếu được lưu trữ trong thư mục "bộ điều khiển" và "mô hình", bạn nên XÂY DỰNG chúng một cách thích hợp bằng cách sử dụng studio trực quan hoặc msbuild. Nhưng bạn có thể, có một "trang web" cấu hình. Và các trang web không biên dịch các tệp bên ngoài app_data. – dampee

+0

Cảm ơn bạn! Nó hoạt động! – user3446407

Các vấn đề liên quan