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

时间:2010-05-18 04:44:50

标签: jquery asp.net-mvc forms

我想使用jquery验证我的表单但是它现在没有ID属性如何将它添加到asp.net mvc中的表单中?我正在使用这个...

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

我的jquery验证器插件接受了这个,

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

现在我要将id设为signupform ...任何建议......

4 个答案:

答案 0 :(得分:329)

这应该会添加ID。

ASP.NET MVC 5及更低版本:

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

ASP.NET Core:您可以use tag helpers in forms来避免设置id的奇怪语法。

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

答案 1 :(得分:6)

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

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 *@
}

答案 2 :(得分:5)

System.Web.Mvc.Html (在 System.Web.Mvc.dll 中),开始表单的定义如下: - Details

  

BeginForm(这个HtmlHelper htmlHelper,字符串actionName,字符串
  controllerName,object routeValues,FormMethod方法,对象   htmlAttributes)

意味着你应该这样使用:

  

Html.BeginForm(string actionName,string controllerName,object   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" />
}

答案 3 :(得分:3)

可能有点迟了但在我的情况下我必须将id放在第二个匿名对象中。 这是因为第一个是路由值,即返回Url。

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

希望这可以帮助某人:)