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">
user426306
quelle

Antworten:

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

Sie müssen das Formular mit Ihrem JavaScript abfangen

Britischer Entwickler
quelle
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"})) {%>
Steven Archibald
quelle
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
}
Brahmaiah Chowdary Murakonda
quelle
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.

Paul Hadfield
quelle
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