Question

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

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top