web-dev-qa-db-fra.com

Comment ajouter une propriété ID à Html.BeginForm () dans asp.net mvc?

Je veux valider mon formulaire à l'aide de jQuery mais il n'a pas de propriété ID à partir de maintenant. Comment l'ajouter au formulaire dans asp.net mvc? J'utilise ceci ...

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

et mon plugin jquery validator prend cela,

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

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

204
ACP

Cela devrait obtenir l'identifiant ajouté.

ASP.NET MVC 5 et versions antérieures:

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

ASP.NET Core: vous pouvez tiliser des aides de balises dans les formulaires pour éviter la syntaxe étrange permettant de définir l'ID.

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

J'ai ajouté du code à mon projet, donc c'est plus pratique.

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 *@
}
6
ADM-IT

Dans System.Web.Mvc.Html (in System.Web.Mvc.dll ), la forme de début est définie comme suit: - Détails

BeginForm (ce HtmlHelper htmlHelper, chaîne actionName, chaîne
controllerName, object routeValues, méthode FormMethod, object htmlAttributes)

signifie que vous devriez utiliser comme ceci:

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

Donc, cela a fonctionné 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" />
}
5

Peut-être un peu tard, mais dans mon cas, je devais mettre l'identifiant dans le 2e objet anonyme. Ceci est dû au fait que le premier concerne les valeurs d’itinéraire, c’est-à-dire l’URL de retour.

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

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

4
Daniaal