2011-12-08 11 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" /> 
    } 

Buna bir css sınıfı ekleyip dolgu ekleyebilir miyim? Ben Sen ActionName, controllerName belirtmek zorunda ama @class="className" ile sınıfını ayarlayabilirsinizSınıf jilet formuna nasıl eklenir ve dolgu yapılır?

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

cevap

21

biraz FormMethod ayarını destekler Html.BeginForm hiçbir aşırı yük yoktur çok çünkü pedi denemek eklemek için aşağıdaki css isteyen var sadece html öznitelikleri.

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

Kendi html yardımcınızı oluşturabilir, bu sizin için de yapar.

Güncelleme İşte

özel html yardımcı olduğunu yapmasıdır.

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 }); 
    } 
} 

Yöntemi bu şekilde görünümünüzden arayabilirsiniz.

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

} 

umut bu küresel yardımcı kullanabilmek için başardınız, ben herhangi bir şans olmadan web.config bölümü üzerindeki ad alanını ekleyerek bu Helper kullanmaya çalıştık

+0

yardımcı olur ? Teşekkürler! – yorch

+2

Uzatma yöntemini, 'System.Web.Mvc' ad alanı alanına koyabilirsiniz – dknaack

+0

Çalıştı, teşekkürler! – yorch

İlgili konular