Jak mogę nazwać formularz za pomocą Html.BeginForm ()?

79

Jak nadać nazwę formularzowi w ASP.NET MVC przy użyciu Html.BeginForm()? Chcę tylko nazwę, a nie nazwę akcji lub kontrolera, ponieważ chcę opublikować je za pomocą JavaScript. Myślę, że powinno być coś takiego Html.BeginForm(id = "frm").

Próbowałem następujących rzeczy:

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

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

Ale powyższy kod daje takie wyniki:

<form action="/Main/Index/Id?name=Id" method="post">
user426306
źródło

Odpowiedzi:

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

Musisz przechwycić przesłany formularz za pomocą JavaScript

BritishDeveloper
źródło
1
Dzięki Ale Twoje rozwiązanie generuje ten kod <form action = "/ Main / Index / frm? Name = frm" method = "post">
user426306
Dzięki, to działa. Dziękuję jeszcze raz
user426306
3
Bardzo mi pomogło, a Twój blog to także przyjemność. Dzięki BritishDeveloper :)
Hallaghan
Upewnij się, że wpisałeś id = "frm" po GET lub POST lub wartość id zostanie przekazana do kontrolera (jeśli istnieje).
Hugh Seagraves
9

Używając MVC2, zadziałało u mnie:

<% using (Html.BeginForm("Index", "Home", null, FormMethod.Post, new {@id = "myForm", @name = "myForm"})) {%>
Steven Archibald
źródło
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
źródło
1
Zamiast „Target-ViewName, gdzie chcesz opublikować stronę” myślę, że masz na myśli „docelową metodę akcji, do której chcesz wysłać dane”.
Sachin Kainth
-3

Zaczerpnięte z tej odpowiedzi: Jak przekazać identyfikator za pomocą Html.BeginForm ()?

Czy nie możesz po prostu zrobić:

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

Szukanie odpowiedzi na SO może się opłacić, ponieważ znalazłem już wiele rzeczy, o które chcę zapytać.

Paul Hadfield
źródło
jednak dodajesz wartości tras. nie atrybuty html
BritishDeveloper,
Widzę twoją odpowiedź, w której podajesz wartości null, pomyślałem, że możesz po prostu użyć wartości domyślnych dla nazwanych parametrów i przekazać listę dodatkowych atrybutów, aby dołączyć do wyjściowego kodu HTML
Paul Hadfield
wypróbowałem już Twoje rozwiązanie, ale generuje ono taki kod „<form action =" / Main / Index / Id? name = Id "method =" post ">"
user426306
Przepraszam za to, myślałem, że tak to działa - oczywiście nie. W takim przypadku może to być dobry przykład, kiedy należy zapewnić własną metodę rozszerzenia HTML lub po prostu powrócić do starego, dobrego HTML.
Paul Hadfield,