我想在ASP.NET MVC 3视图中为使用Html.BeginForm
创建的表单分配HTML属性,但似乎我必须使用重载
BeginForm(this HtmlHelper htmlHelper,
string actionName,
string controllerName,
FormMethod method,
Object htmlAttributes
)
像这样调用它:
Html.BeginForm(null, null, FormMethod.Post, new {id = "my-form"})
有没有更简单的方法来做到这一点,所以我可以通过例如new {id = "my-form"}
是Html.BeginForm
的唯一参数?
答案 0 :(得分:8)
有没有更简单的方法来做到这一点,所以我可以通过例如new {id =“my-form”}是Html.BeginForm的唯一参数?
不,除非您编写自己的HTML帮助程序,否则没有:
public static class FormExtensions
{
public static MvcForm MyBeginForm(this HtmlHelper htmlHelper, object htmlAttributes)
{
return htmlHelper.BeginForm(null, null, FormMethod.Post, htmlAttributes);
}
}
然后:
@using (Html.MyBeginForm(new { id = "my-form" }))
{
...
}
很遗憾,您无法使用BeginForm
作为名称,因为已存在overload with the same signature,其中参数代表routeValues
。
答案 1 :(得分:0)
编写自己的扩展方法。
public static class MyFormExtensions {
public static MvcForm BeginForm(this HtmlHelper htmlHelper, Object htmlAttributes)
{
return htmlHelper.BeginForm(null, null, FormMethod.Post, htmlAttributes);
}
}