2012-06-10 28 views
16

Tôi có Chỉnh sửa hành động với Html.BeginForm. Làm thế nào tôi có thể thêm các thuộc tính HTML?Html.BeginForm với thuộc tính html asp.net mvc4

Tôi biết chỉ có một cách:

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

} 

nhưng nếu tôi sử dụng phương pháp này, tôi không thể vượt qua ID hiện tại

Có thể thêm HTML thuộc tính để tạo thành mà không sửa đổi URL hành động?

+0

Bạn đang sử dụng mạnh mẽ gõ xem –

+0

Có ........................... –

+1

Thế nào là id hiện tại và tại sao bạn không thể vượt qua nó? – gdoron

Trả lời

32

Các ghi đè gì bạn cần là:

@using(Html.BeginForm("Edit", "Clients", new { Id=Model.Id}, 
         FormMethod.Post, new { @class = "example" })) 
{ 
} 
  • giá trị Route như "id" được thông qua như là tham số thứ ba.
  • Thuộc tính HTML như "lớp" được chuyển làm thông số thứ năm.

Xem MSDN tài liệu.

+1

Và tất nhiên bạn cũng có thể chuyển '@ id =" blah "' vào đối tượng tham số thứ 5, sẽ có hiệu ứng hoàn toàn khác với việc thiết lập id HTML của thẻ biểu mẫu được trả về. – CrazyPyro

+0

Hai thông số đầu tiên có thể là null nếu bạn muốn đăng lên cùng một hành động (phương thức Post) của bộ điều khiển hiện tại như: '@using (Html.BeginForm (null, null, new {Id = Model.Id}, FormMethod.Post , mới {@class = "example"})) ' –

2

Calling qua một ActionLink từ ControllerA

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

} 

HOẶC

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

} 
0

Các thông số hành động và điều khiển cũng có thể được null để sử dụng hành động mặc định:

Html.BeginForm(null, null, FormMethod.Post, new { id=”formname”, @class="formclass" }) 
Các vấn đề liên quan