在MVC3中使用Html.BeginForm有什么用.为什么我们使用它,当我们可以直接添加一个表单标签时,这个html帮助器是否添加了一些功能,或者做了一些无法用简单的表单标签完成的事情.
Jes*_*lam 33
该Html.BeginForm辅助方法,包含了几个重载,其预期的目的是使写作路由形式更容易.它了解MVC结构,并确保其目标是控制器和动作.这只是一些语法糖:
<form method="post" action="@Url.Action(...)">
Run Code Online (Sandbox Code Playgroud)
用微软的话来说:
ASP.NET MVC框架包含帮助程序方法,这些方法提供了在视图中呈现HTML的简便方法.
当然,没有人让你使用它们.这只是一个偏好问题.事实上,在MVC的早期阶段,许多WebForms开发人员都在庆祝他们从服务器控件a-la <asp:TextBox>等人那里获得新的自由,并坚持手工编写所有内容.
强烈建议使用表单字段的帮助程序,因为他们知道表单验证等内容.Html.BeginForm只是为您提供一致的方式来开始和完成您的表单:
@using(Html.BeginForm())
{
@Html.LabelFor(...)
@Html.EditorFor(...)
}
Run Code Online (Sandbox Code Playgroud)
Html.BeginForm返回一个IDisposable对象,允许您将其包装在C#using语句中.当using退出时,处理将Html.EndForm()自动为您调用.从Html.EndForm返回后void,从Razor打电话有点不方便:
@Html.BeginForm()
<formStuff>
@{Html.EndForm();}
Run Code Online (Sandbox Code Playgroud)
一个简单的@Html.EndForm()将转入Write(Html.EndForm()) -> Write(void),即编译时错误.
| 归档时间: |
|
| 查看次数: |
31449 次 |
| 最近记录: |