¿Cómo puedo nombrar un formulario con Html.BeginForm ()?

79

¿Cómo le doy un nombre a un formulario en ASP.NET MVC usando Html.BeginForm()? Solo quiero el nombre, no la acción o el nombre del controlador porque quiero publicarlo a través de Javascript. Creo que debería ser algo así Html.BeginForm(id = "frm").

Intenté lo siguiente:

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

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

Pero el código anterior produce un resultado como este:

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

Respuestas:

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

Deberá capturar el formulario enviado con su JavaScript

Desarrollador británico
fuente
1
Gracias Pero su solución produce este código <form action = "/ Main / Index / frm? Name = frm" method = "post">
user426306
Thanks It Works Hombre Thank Again
user426306
3
Me ayudó mucho y tu blog también es un placer. Gracias BritishDeveloper :)
Hallaghan
Asegúrese de poner id = "frm" después de GET o POST o el valor de id se pasará al controlador (si lo hay).
Hugh Seagraves
9

Usando MVC2, esto es lo que funcionó para mí:

<% using (Html.BeginForm("Index", "Home", null, FormMethod.Post, new {@id = "myForm", @name = "myForm"})) {%>
Steven Archibald
fuente
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
fuente
1
En lugar de "Target-ViewName donde desea publicar la página", creo que se refiere al "método de acción de destino al que desea publicar los datos".
Sachin Kainth
-3

Tomado de esta respuesta: ¿Cómo pasar la identificación con Html.BeginForm ()?

¿No puedes simplemente hacer:

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

Puede ser rentable buscar SO para respuestas, ya que he encontrado muchas cosas que quiero preguntar.

Paul Hadfield
fuente
sin embargo, estás agregando valores de ruta. no atributos html
Desarrollador británico
Veo su respuesta donde está pasando nulos, pensé que podría usar los valores predeterminados para los parámetros nombrados y pasar una lista de atributos adicionales para agregar al HTML de salida
Paul Hadfield
Probé su solución antes, pero genera un código como este "<form action =" / Main / Index / Id? name = Id "method =" post ">"
user426306
Lo siento, pensé que así funcionaba, obviamente no. En ese caso, este podría ser un buen ejemplo de cuándo proporcionar su propio método de extensión HTML o simplemente volver al buen HTML antiguo.
Paul Hadfield