如何在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.Html ( System.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" }))
希望这可以帮助某人:)