ASP.. NET MVC 3,我应该如何分配
属性与HtmlHelper.BeginForm

本文关键字:form 属性 BeginForm HtmlHelper 分配 MVC NET 我应该 何分配 ASP | 更新日期: 2023-09-27 18:07:14

我想把HTML属性分配给在ASP中使用Html.BeginForm创建的表单。. NET MVC 3视图,但似乎我必须使用重载

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的唯一参数?

ASP.. NET MVC 3,我应该如何分配<form>属性与HtmlHelper.BeginForm

是否有一些更简单的方法来做到这一点,所以我可以传递例如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作为名称,因为已经有一个具有相同签名的过载,其中参数表示routeValues

编写自己的扩展方法。

public static class MyFormExtensions { 
  public static MvcForm BeginForm(this HtmlHelper htmlHelper, Object htmlAttributes)
  {
     return htmlHelper.BeginForm(null, null, FormMethod.Post, htmlAttributes);
  }
}