2011-12-08 10 views
5
@using (Html.BeginForm()) 
{ 
    @Html.TextBoxFor(m => m.Name, new { @Value = "Name" }) 
    @Html.TextBoxFor(m => m.Email, new { @Value = "Email" }) 
    <input type="submit" value="Go" /> 
    } 

¿cómo agrego una clase css a esto y agrego relleno? Tengo el siguiente CSS deseo añadir a tratar almohadilla que sea un pococómo agregar la clase a la forma de afeitar y dar relleno?

.newsletterform 
{ 
    color:black; 
    padding-left:20px; 
} 

Respuesta

21

Puede definir la clase con @class="className" pero tiene que especificar actionName, controllerName, FormMethod demasiado porque no hay sobrecarga de Html.BeginForm que soporta entorno solo atributos html.

@Html.BeginForm("ActionName", "ControllerName", 
       FormMethod.Post, new { @class = "newsletterform" } 

Puede crear su propio helper html, que también lo hace por usted.

actualización

Aquí es una ayuda HTML a medida que lo hace.

public static class HtmlHelperExtension 
{ 
    public static MvcForm BeginFormWithClassName(this HtmlHelper helper, string cssClassName) 
    { 
     string controllerName = (string)helper.ViewContext.RouteData.Values["controller"]; 
     string actionName = (string)helper.ViewContext.RouteData.Values["action"]; 
     return helper.BeginForm(actionName, controllerName, FormMethod.Post, new { @class = cssClassName }); 
    } 
} 

Puede llamar al método desde su vista de esta manera.

@using (Html.BeginFormWithClassName("newsletterform")) 
{ 

} 

esperanza esto ayuda

+0

He tratado de utilizar este Asistente de añadir su espacio de nombres en la sección de en el web.config sin ninguna suerte, se las arregló para poder utilizar el ayudante a nivel mundial ? ¡Gracias! – yorch

+2

Puede poner el método de extensión en el 'namespace System.Web.Mvc' – dknaack

+0

¡Eso funcionó, gracias! – yorch

Cuestiones relacionadas