2011-12-08 33 views

Trả lời

21

Bạn có thể thiết lập các lớp học với @class="className" nhưng bạn phải xác định actionName, controllerName, FormMethod quá vì không có tình trạng quá tải của Html.BeginForm hỗ trợ thiết lập chỉ thuộc tính html.

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

Bạn có thể tạo trình trợ giúp html của riêng mình, cũng như vậy cho bạn.

Cập nhật

Đây là một helper tùy chỉnh html nào đó.

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

Bạn có thể gọi phương thức từ chế độ xem của bạn như thế này.

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

} 

hy vọng điều này giúp

+0

Tôi đã cố gắng sử dụng Helper này thêm namespace của nó trên phần trên web.config mà không cần bất kỳ may mắn, bạn đã quản lý để có thể sử dụng các helper trên toàn cầu ? cảm ơn! – yorch

+2

Bạn có thể đặt phương thức mở rộng vào 'namespace System.Web.Mvc' – dknaack

+0

Điều đó có hiệu quả, cảm ơn! – yorch

Các vấn đề liên quan