2010-05-18 7 views
175

Je veux valider mon formulaire en utilisant jquery mais il n'a pas de propriété ID dès maintenant comment l'ajouter au formulaire en asp.net mvc? J'utilise ce ...Comment ajouter une propriété ID à Html.BeginForm() dans asp.net mvc?

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

et mon plugin jquery validateur prend ce,

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

Maintenant, je veux donner id comme signupform ... Toute suggestion ...

+2

Bonne question, n'a rien à voir avec jquery –

Répondre

284

Cette devrait obtenir l'identifiant ajouté.

ASP.NET MVC 5 et inférieure:

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

ASP.NET de base: Vous pouvez use tag helpers in forms pour éviter la syntaxe bizarre pour régler l'id. J'ai ajouté du code à mon projet, donc c'est plus pratique.

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

pourquoi l'action et le contrôleur sont là nulle? Pourrais-tu l'expliquer plz? –

+6

Je ne sais pas où vous voulez publier le formulaire, donc je les ai juste fait nulles. –

+8

L'action et le contrôleur définis sur null vous évite d'avoir à les coder en dur.Ceci est utile si vous avez votre formulaire dans une vue partielle et que ce partiel est utilisé dans plusieurs vues comme Créer et Modifier. –

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

En System.Web.Mvc.Html (en System.Web.Mvc.dll) BEGIN le formulaire est défini comme: - Details

BeginForm (Ce HtmlHelper HtmlHelper, chaîne actionName, chaîne
ControllerName, routeValues ​​objet, méthode FormMethod, objet htmlAttributes)

signifie que vous devez utiliser comme ceci:

Html.BeginForm (string actionName , string controllerName, objet routeValues, méthode FormMethod, objet htmlAttributes)

Ainsi, il a travaillé dans 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" /> 
} 
1

Peut-être un peu en retard, mais dans mon cas, je devais mettre l'id dans le 2ème objet anonyme. Cela est dû au fait que le 1er est pour les valeurs de route, c'est-à-dire l'URL de retour.

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

espère que cela peut aider quelqu'un :)

Questions connexes