【问题标题】:Building a contact form in Umbraco 7在 Umbraco 7 中建立联系表格
【发布时间】:2014-04-09 05:35:09
【问题描述】:

我是 MVC 新手,我按照教程构建联系表单页面,但收到此错误消息:命名空间名称“模型”不存在

控制器 - 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();
    }


} 
}

模型 - 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; }
    }
}

部分视图 - 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" />
}

在这里我在第一行收到错误消息 查看 - Contact.cshtml

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

@{
    Layout = "uBlogsyBaseSite.cshtml";
}

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

我错过了什么?

我真的需要这方面的帮助,感谢任何帮助。

谢谢, 乔纳斯

【问题讨论】:

    标签: asp.net-mvc razor umbraco7


    【解决方案1】:

    您将表面控制器代码和模型代码存储在哪里?

    它应该存储在 app_code 或单独的 DLL 中。

    【讨论】:

    • 我将它存储在 Controllers and Models 文件夹中。但这不应该导致错误消息,或者?
    • 是的,它确实会导致错误消息。如果存储在“控制器”和“模型”文件夹中,您应该使用 Visual Studio 或 msbuild 适当地构建它们。但是您可能已经配置了一个“网站”。并且网站不会编译 app_data 之外的文件。
    猜你喜欢
    • 2020-05-30
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多