Wie kann ich ein Formular mit Html.BeginForm () benennen?


78

Wie gebe ich einem Formular in ASP.NET MVC einen Namen Html.BeginForm()? Ich möchte nur den Namen, nicht den Aktions- oder Controllernamen, weil ich ihn über Javascript veröffentlichen möchte. Ich denke es sollte so etwas sein Html.BeginForm(id = "frm").

Ich habe folgendes versucht:

Html.BeginForm(null,null,new{id="frm",name="frm})

Html.BeginForm(new{@id="frm",@name="frm})

Der obige Code erzeugt jedoch eine Ausgabe wie folgt:

<form action="/Main/Index/Id?name=Id" method="post">

Antworten:


135
Html.BeginForm(null, null, FormMethod.Get, new { name = "frm", id = "frm" })

Sie müssen das Formular mit Ihrem JavaScript abfangen


1
Danke Aber Ihre Lösung erzeugt diesen Code <form action = "/ Main / Index / frm? Name = frm" method = "post">
user426306

Danke, es funktioniert Mann, danke noch einmal
user426306

3
Hat mir sehr geholfen und dein Blog ist auch ein Genuss. Danke BritishDeveloper :)
Hallaghan

Stellen Sie sicher, dass Sie nach dem GET oder POST id = "frm" eingeben. Andernfalls wird der ID-Wert an den Controller übergeben (falls vorhanden).
Hugh Seagraves

9

Mit MVC2 hat das für mich funktioniert:

<% using (Html.BeginForm("Index", "Home", null, FormMethod.Post, new {@id = "myForm", @name = "myForm"})) {%>

0
@HTML.BeginForm("Target-ViewName where you want to post the page","Controller Name",new {@name="Name of the Form", id="ID of the Form"}) 
{ //form here
}

1
Anstelle von "Target-ViewName, wo Sie die Seite veröffentlichen möchten" meinen Sie "Zielaktionsmethode, auf der Sie die Daten veröffentlichen möchten".
Sachin Kainth

-3

Aus dieser Antwort entnommen: Wie übergebe ich eine ID mit Html.BeginForm ()?

Kannst du nicht einfach machen:

Html.BeginForm(new {@id="Id", @name="Id"}); 

Es kann sich lohnen, SO nach Antworten zu suchen, da ich festgestellt habe, dass viele Dinge, die ich fragen möchte, bereits angetroffen wurden.


Sie fügen jedoch Routenwerte hinzu. keine HTML-Attribute
BritishDeveloper

Ich sehe Ihre Antwort, wo Sie Nullen übergeben. Ich dachte, Sie könnten einfach die Standardeinstellungen für die genannten Parameter verwenden und eine Liste zusätzlicher Attribute übergeben, um sie an die Ausgabe-HTML anzuhängen
Paul Hadfield

Ich habe Ihre Lösung schon einmal ausprobiert, aber sie generiert Code wie diesen "<form action =" / Main / Index / Id? name = Id "method =" post ">"
user426306

Tut mir leid, ich dachte, dass es so funktioniert - offensichtlich nicht. In diesem Fall ist dies möglicherweise ein gutes Beispiel dafür, wann Sie Ihre eigene HTML-Erweiterungsmethode bereitstellen oder einfach auf gutes altes HTML zurückgreifen müssen.
Paul Hadfield
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.