【发布时间】:2014-07-26 09:31:05
【问题描述】:
我是 Umbraco 和 ASP.NET MVC 的新手,我正在处理 Umbraco 7 中的联系我们表格。
我创建了控制器和视图,但出现错误
在 RouteTable 中找不到控制器名称 ContactUsSurfaceController 的 Surface 控制器路由
我的模特:
public class ContactUs
{
/// <summary>
///
/// </summary>
public string Name { get; set; }
/// <summary>
///
/// </summary>
public string Company { get; set; }
/// <summary>
///
/// </summary>
public string Email { get; set; }
/// <summary>
///
/// </summary>
public string Tel { get; set; }
/// <summary>
///
/// </summary>
public string Intrested { get; set; }
/// <summary>
///
/// </summary>
public string Message { get; set; }
}
我的控制器
public class ContactUsSurfaceController : SurfaceController
{
[HttpPost]
public ActionResult Contact(ContactUs model)
{
if(ModelState.IsValid)
{
var sb = new StringBuilder();
sb.AppendFormat("<p>name: {0}</p>", model.Name);
sb.AppendFormat("<p>name: {0}</p>", model.Company);
sb.AppendFormat("<p>name: {0}</p>", model.Email);
sb.AppendFormat("<p>name: {0}</p>", model.Tel);
sb.AppendFormat("<p>name: {0}</p>", model.Intrested);
sb.AppendFormat("<p>name: {0}</p>", model.Message);
umbraco.library.SendMail("test@test.com", "test@test.com", "Contact Us", sb.ToString(), true);
return RedirectToCurrentUmbracoPage();
}
return JavaScript("alert('error')");
}
}
}
我对这个模型的看法:
@model Umbraco.AddingValues.Web.Model.ContactUs
@using (Html.BeginUmbracoForm("Contact", "ContactUsSurfaceController", null, new { @class = "contact-form" }))
{
@Html.ValidationSummary(true)
<div>
@Html.LabelFor(x => x.Name)
@Html.TextBoxFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
@Html.LabelFor(x => x.Email)
@Html.TextAreaFor(x => x.Email)
@Html.ValidationMessageFor(x => x.Email)
@Html.LabelFor(x => x.Tel)
@Html.TextBoxFor(x => x.Tel)
@Html.ValidationMessageFor(x => x.Tel)
@Html.LabelFor(x => x.Intrested)
@Html.TextBoxFor(x => x.Intrested)
@Html.ValidationMessageFor(x => x.Intrested)
@Html.LabelFor(x => x.Message)
@Html.TextBoxFor(x => x.Message)
@Html.ValidationMessageFor(x => x.Message)
</div>
<input type="submit" value="Send Message" class="btn-accept" />
}
我在另一个视图中这样称呼它
@Html.Action("~/Views/Partials/ContactForm.cshtml")
请帮我解决我遇到的错误
在 RouteTable 中找不到控制器名称 ContactUsSurfaceController 的 Surface 控制器路由
【问题讨论】:
-
路由有问题请在此处发布路由配置文件。
-
您好,亲爱的,我没有在其中找到任何 App-Start 文件夹。
-
umbraco 中必须有一种控制路由的方法,然后将其发布到这里,因为您面临的问题是由于路由问题......
-
不熟悉umbraco,但是
@using (Html.BeginUmbracoForm("Contact", "ContactUsSurfaceController", null..中的第二个参数应该是"ContactUs"还是“ContactUsSurface"”? -
同意斯蒂芬的观点,惯例规定行动:“ContactUs”和控制器:“ContactUsSurface”
标签: c# asp.net-mvc asp.net-mvc-4 umbraco umbraco7