I´m new to MVC, and I have followed a tutorial for building a contact form page but get this error message: namespace name 'Models' does not exist

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("noreply@test.se", "info@test.se", model.Subject, sb.ToString(), true);

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


} 
}

Model - 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" />
}

And it´s here I get the error message on the first line 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") })

What have I missed?

I really need help with this, any help is appreciated.

Thanks, Jonas

有帮助吗?

解决方案

Where do you store your surface controller code and your model code?

It should be stored in the app_code or in a separate DLL.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top