如何在asp.net mvc中添加ID属性到Html.BeginForm()?

我想validation我的表单使用jQuery,但它没有一个ID属性截至目前如何将其添加到窗体在asp.net mvc? 我正在使用这个…

 <% using (Html.BeginForm()) {%> 

和我的jQueryvalidation器插件采取这一点,

 var validator = $("#signupform").validate({ 

现在我想给id作为signupform …任何build议…

这应该得到的ID添加。

ASP.NET MVC 5及更低版本:

 <% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "signupform" })) { } %> 

ASP.NET核心:您可以在表单中使用标签助手来避免设置标识的奇怪语法。

 <form asp-controller="Account" asp-action="Register" method="post" id="signupform" role="form"></form> 

我已经为我的项目添加了一些代码,所以它更方便。

HtmlExtensions.cs:

 namespace System.Web.Mvc.Html { public static class HtmlExtensions { public static MvcForm BeginForm(this HtmlHelper htmlHelper, string formId) { return htmlHelper.BeginForm(null, null, FormMethod.Post, new { id = formId }); } public static MvcForm BeginForm(this HtmlHelper htmlHelper, string formId, FormMethod method) { return htmlHelper.BeginForm(null, null, method, new { id = formId }); } } } 

MySignupForm.cshtml:

 @using (Html.BeginForm("signupform")) { @* Some fields *@ } 

System.Web.Mvc.HtmlSystem.Web.Mvc.dll )中,开始表单被定义为: – Details

BeginForm(这个HtmlHelper htmlHelper,stringactionName,string
controllerName,对象routeValues,FormMethod方法,对象htmlAttributes)

意思是你应该这样使用:

Html.BeginForm(stringactionName,stringcontrollerName,对象routeValues,FormMethod方法,对象htmlAttributes)

所以,它在MVC 4中工作

 @using (Html.BeginForm(null, null, new { @id = string.Empty }, FormMethod.Post, new { @id = "signupform" })) { <input id="TRAINER_LIST" name="TRAINER_LIST" type="hidden" value=""> <input type="submit" value="Create" id="btnSubmit" /> } 

可能有点晚,但在我的情况下,我不得不把id放在第二个匿名对象。 这是因为第一个是路由值,即返回Url。

 @using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { id = "signupform", role = "form" })) 

希望这可以帮助某人:)