2009-11-23 9 views
21

me gusta la limpieza deHtml.BeginForm y atributos HTML w/o especificación de controlador y la acción

using (Html.BeginForm()) 

y el odio que la adición de atributos HTML requiere especificar el controlador, la acción y el método de formulario.

using (Html.BeginForm("Action", "Controller", FormMethod.Post, 
    new { id = "inactivate-form" }) 

¿Hay una manera de utilizar Html.BeginForm y especifique los atributos HTML de la forma sin el cableado de forma manual todo lo demás para arriba?

Respuesta

16

¿Por qué no simplemente usar html simple?

<form id="inactivate-form" method="post" > 
</form> 
+1

esto es exactamente lo que los nuevos usuarios de ASP.NET MVC necesita entender. No tiene que ser todo el código. :) – CodeMonkey

+0

No hay razón más que tratar de seguir ejemplos. Prefiero su método sugerido a 'Html.BeginForm'. @CodeMonkey ¿cómo podría decir que soy un nuevo usuario de ASP.NET MVC? :) – ahsteele

+3

En realidad, encontré la manera más difícil que si no usas BeginForm no obtendrás la validación del lado del cliente para que funcione ya que de lo contrario no se "conectará". –

10

se podría crear una extensión personalizada que agrega una forma 'Id-ed':

public static MvcForm BeginIdedForm(this HtmlHelper htmlHelper, string id) 
{ 
    return htmlHelper.BeginForm(null, null, FormMethod.Post, new Dictionary<string, object>() { { "id", id } }); 
} 

Uso continuación, sólo se convierte en

using(Html.BeginIdedForm("inactiveate-form")) 
Cuestiones relacionadas