无法使用 Html.BeginForm 将属性分配给表单
Cannot assign attributes to form using Html.BeginForm
我有一个以 Html.BeginForm()
辅助方法开始的表单:
@using (Html.BeginForm(
null,null, new { @id = "MaintenanceForm", @class = "datatable", @nonvalidate="nonvalidate" }
))
表单呈现为:
<form action="(controller's name)/(current action's name)/MaintenanceForm?class=datatable" method="post">
未分配 id、class 和 nonvalidate
等属性。我也不想要默认的 Http 方法。我能做什么?
您当前的代码与 BeginForm 方法的以下重载匹配
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
object routeValues
)
此处的第三个参数是路由值的对象。这些将作为查询字符串键值添加到表单的 action
属性值中。这就是您看到那些大 url 作为 action 属性值的原因。
如果要指定 html 属性(Id、class 等),请使用此重载,它有第四个参数,它采用 html属性。第三个参数是FormMethod。
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
FormMethod method,
object htmlAttributes
)
这应该有效。
@using (Html.BeginForm("Create", "Post",FormMethod.Post,
new { @id = "MaintenanceForm", @class = "datatable", @nonvalidate = "nonvalidate" }))
{
}
将 Create
和 Post
替换为您的操作方法名称和控制器名称。
我有一个以 Html.BeginForm()
辅助方法开始的表单:
@using (Html.BeginForm(
null,null, new { @id = "MaintenanceForm", @class = "datatable", @nonvalidate="nonvalidate" }
))
表单呈现为:
<form action="(controller's name)/(current action's name)/MaintenanceForm?class=datatable" method="post">
未分配 id、class 和 nonvalidate
等属性。我也不想要默认的 Http 方法。我能做什么?
您当前的代码与 BeginForm 方法的以下重载匹配
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
object routeValues
)
此处的第三个参数是路由值的对象。这些将作为查询字符串键值添加到表单的 action
属性值中。这就是您看到那些大 url 作为 action 属性值的原因。
如果要指定 html 属性(Id、class 等),请使用此重载,它有第四个参数,它采用 html属性。第三个参数是FormMethod。
public static MvcForm BeginForm(
this HtmlHelper htmlHelper,
string actionName,
string controllerName,
FormMethod method,
object htmlAttributes
)
这应该有效。
@using (Html.BeginForm("Create", "Post",FormMethod.Post,
new { @id = "MaintenanceForm", @class = "datatable", @nonvalidate = "nonvalidate" }))
{
}
将 Create
和 Post
替换为您的操作方法名称和控制器名称。