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("[email protected]", "[email protected]", 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
But instead of paying for Forms, you can actually use Umbraco Cloud and get the app included free of charge.
So for brochure type sites there is very little need to create controllers as in point 1, Umbraco magically handles the controller part of MVC, and all you need to do is create the document types, views and partials to build the site.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With