2012-06-10 42 views
16

Tengo acción de edición con Html.BeginForm. ¿Cómo puedo agregar atributos de HTML?Html.BeginForm con atributos html asp.net mvc4

sé de una sola manera:

@using (Html.BeginForm("Edit", "Clients", FormMethod.Post, new { @class="example"})) { 

} 

pero si utilizo este método no puede pasar de identificación actual

¿Es posible añadir atributos HTML para formar sin modificar URL de acción?

+0

¿Está utilizando fuertemente Vista mecanografiada –

+0

Sí ........................... –

+1

¿Qué es el identificación actual y por qué no puedes pasarla? – gdoron

Respuesta

32

La anulación que necesita es:

@using(Html.BeginForm("Edit", "Clients", new { Id=Model.Id}, 
         FormMethod.Post, new { @class = "example" })) 
{ 
} 
  • valores de ruta como "id" se pasan como el tercer parámetro.
  • Los atributos HTML como "clase" se pasan como el quinto parámetro.

Ver MSDN docs.

+1

Y, por supuesto, también puede pasar '@ id =" blah "' en el quinto objeto de parámetro, que tendrá el efecto completamente diferente de establecer la identificación HTML de la etiqueta de formulario procesada. – CrazyPyro

+0

Los primeros dos parámetros pueden ser nulos si desea publicar en la misma acción (método de publicación) del controlador actual como: '@using (Html.BeginForm (null, null, new {Id = Model.Id}, FormMethod.Post , nuevo {@class = "example"})) ' –

2

llama a través de un ActionLink de ControllerA

@using (Html.BeginForm("Create", 
    "StudentPChoice", 
    new { StudentPChoiceId = Model.StudentPChoiceId }, 
    FormMethod.Post)) 
{ 

} 

O

@using (Html.BeginForm("Create", 
    "ControllerB", 
    new { ControllerBId = Model.ControllerAId }, 
    FormMethod.Post)) 
{ 

} 
0

los parámetros de acción y controlador también puede ser un valor nulo a utilizar la acción predeterminada:

Html.BeginForm(null, null, FormMethod.Post, new { id=”formname”, @class="formclass" }) 
Cuestiones relacionadas