C# Don';我不太懂BeginUmbracoForm

C# Don';我不太懂BeginUmbracoForm,c#,asp.net-mvc,razor,umbraco,C#,Asp.net Mvc,Razor,Umbraco,我正在学习教程,使用Umbraco和Mvc创建一个联系我们表单——我有点困惑为什么某件事情会起作用。具体来说,-ContactForm(部分视图)如何显示ContactUs页面的内容(通过调用@Html.Action(“ShowForm”、“ContactSurface”))以及如何处理submit按钮(它如何知道在按下submit按钮时只调用HandleFormPost)?) 以下是用于保存“联系我们”网页的视图/模板 @inherits Umbraco.Web.Mvc.UmbracoTem

我正在学习教程,使用Umbraco和Mvc创建一个联系我们表单——我有点困惑为什么某件事情会起作用。具体来说,-ContactForm(部分视图)如何显示ContactUs页面的内容(通过调用@Html.Action(“ShowForm”、“ContactSurface”))以及如何处理submit按钮(它如何知道在按下submit按钮时只调用HandleFormPost)?)

以下是用于保存“联系我们”网页的视图/模板

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.ContactHolder>
@using ContentModels = Umbraco.Web.PublishedContentModels;
@{
    Layout = "Master.cshtml";
}
@Html.Action("ShowForm", "ContactSurface")
这是一个部分视图,用于实际显示表单,显然还创建了新的ContactFormula(一种用于保存Contactus提交的文档类型,其中包含emailFrom、contactName和contactMessage)

@继承Umbraco.Web.Mvc.UmbracoViewPage
@使用CohensigarsDemo.Controllers;
@使用(Html.BeginUmbracoForm(“HandleFormPost”))
{
电子邮件@Html.TextBoxFor(x=>x.Email,新的{@class=“emailFrom”,placeholder=“E-mail”})

Name@Html.TextBoxFor(x=>x.Name,新的{@class=“nameFrom”,placeholder=“Name”})
消息
@text区域(x=>x.Message,新的{@class=“messageFrom”,placeholder=“Message”})
}
您的控制器有两种方法,一种用于显示表单
ShowForm
,另一种用于在按下提交按钮后执行的业务逻辑
HandleFormPost

所有路由信息都在下面的语句中

Html.BeginUmbracoForm<ContactSurfaceController>("HandleFormPost")
表单现在路由到ContactSurfaceController中的HandleFormPost方法(这是标准的)。 由于“提交”按钮,浏览器知道单击后要做什么

ContactModel
只是表单中字段的强类型对象,通过一些MVC魔法,提交表单时字段会自动映射到
ContactModel
对象,并基于此模型使用
Services.ContentService.CreateContent创建新的umbraco documenttype


有关使用MVC创建表单的更多说明,请查看您的控制器有两种方法,一种用于显示表单
ShowForm
,另一种用于在按下提交按钮后执行的业务逻辑
HandleFormPost

所有路由信息都在下面的语句中

Html.BeginUmbracoForm<ContactSurfaceController>("HandleFormPost")
表单现在路由到ContactSurfaceController中的HandleFormPost方法(这是标准的)。 由于“提交”按钮,浏览器知道单击后要做什么

ContactModel
只是表单中字段的强类型对象,通过一些MVC魔法,提交表单时字段会自动映射到
ContactModel
对象,并基于此模型使用
Services.ContentService.CreateContent创建新的umbraco documenttype


有关使用MVC创建表单的更多说明,请查看

很抱歉,我仍然不明白。请您在常规的BeginForm上添加更多说明。还有-确切的名称是什么。具体来说-ContactForm是什么(最后一段)是否在ShowForm和Submit/Handle表单帖子下?我已经添加了一些额外的解释,以及一个关于如何使用RazorI创建表单的教程链接。很抱歉,但我仍然不明白。请您在常规的BeginForm上添加一些解释。另外-确切地说,什么叫做什么。具体来说-ContactForm是什么(最后一个片段)在ShowForm和Submit/Handle Form的帖子下做了什么?我添加了一些额外的解释,以及一个关于如何使用Razor创建表单的教程链接
Html.BeginUmbracoForm<ContactSurfaceController>("HandleFormPost")
<form method="post" action="umbraco/surface/contact/handleformpost">