Hinzufügen einer CSS-Klasse zu Html.BeginForm ()

77

So fügen Sie ein Klassenattribut für die folgende Situation hinzu (nur mit ReturnUrl):

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
{
}

Ich möchte so etwas:

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }, new { @class = "login-form" })) 
{
}
Vishal
quelle

Antworten:

156

Es gibt eine Überlastung dafür, wenn Sie die Controller-Aktion, den Namen und die Formularmethode angeben.

@using (Html.BeginForm("ActionName", "ControllerName", 
            new { ReturnUrl = ViewBag.ReturnUrl }, 
            FormMethod.Post, new { @class="login-form" }))
{
  etc.
}
moribvndvs
quelle
2
Danke ... das habe ich gebraucht .. !!
Vishal
28
Die häufigste Verwendung der Methode ist Html.BeginForm()daher, ich wünschte, Microsoft würde es ermöglichen, aufzurufen, Html.BeginForm( new{ @class="something"})ohne sich um alle anderen Parameter kümmern zu müssen.
Shadi Namrouti
Stimmen Sie zu, es wäre schön, nur htmlAttribute anzugeben, Sie müssen jedoch nicht alle Parameter angeben, sondern nur die Methode:Html.BeginForm(FormMethod.Post, new { @class = "something" })
Ben Robinson
1
Html.BeginForm("Index", "EIApplication", FormMethod.Post, new { enctype = "multipart/form-data", **@class = "nea-forms"** })
p4rds
quelle
Bitte fügen Sie einen Kommentar hinzu, in dem erläutert wird, wie Ihr Code das Problem behebt, um diese Antwort zu verbessern.
Eric Hauenstein
-3

Oder einfach mit HTML:

<form action="/ActionName/ControllerName" method="post" class="login-form">

</form>
Frédéric
quelle
7
Die Frage besagt speziell "Html.BeginForm ()"
EvilDr
Ich bin mir auch nicht sicher, ob dadurch das Antiforgery-Token hinzugefügt wird. Nur etwas zu beachten.
KSib