2013-04-17 31 views
6

Trong dao cạo nếu tôi có cái gì đó như:lớp css Addind để dao cạo yếu tố

@Html.EditorFor(model => model.name) hoặc thậm chí: @Html.CheckBoxFor(m => m.RememberMe)

Làm thế nào tôi có thể thêm một lớp css hoặc một id với họ? Tôi đã đọc về những người giúp đỡ, nhưng tôi có phải làm người trợ giúp cho mọi yếu tố không? sao không có cách dễ dàng để thêm một lớp hoặc id để các yếu tố hình thức dao cạo?

Trả lời

7

Bạn không thể làm điều đó với EditorFor helper đơn giản chỉ vì bạn không biết những gì mẫu sẽ được sử dụng. Bạn có thể đạt được nó nhưng bạn sẽ cần phải viết một mẫu trình soạn thảo tùy chỉnh. Ví dụ, điều này có thể đạt được bằng cách ghi đè số default editor template và tính đến thông số thứ hai đại diện cho dữ liệu lượt xem bổ sung.

Dưới đây là một ví dụ về cách như một tùy chỉnh biên tập mẫu có thể tìm kiếm các loại chuỗi (~/Views/Shared/EditorTemplates/string.cshtml):

@Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue, 
    ViewData 
) 

và sau đó bạn có thể sử dụng nó như thế:

@Html.EditorFor(model => model.name, new { @class = "myclass" }) 

Với sự trợ giúp CheckBoxFor bạn có thể làm điều đó:

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myclass" }) 
+0

Ah, đã đến lúc tôi nghỉ hưu ngày hôm nay? Bạn đang ở khắp nơi :) Không nhìn thấy câu trả lời của bạn cho đến khi tôi đăng bài của tôi. –

+0

@vonv., Tuy nhiên, đó là của bạn đã upvoted ngay cả khi đăng 2 phút sau :-) –

+0

Với bài đăng blog này, kể từ khi nó chỉ MVC2 làm việc cho MVC 3? – TheWebs

0

EditorFor không phải là loại dành riêng cho từng loại, bạn không thể sử dụng trên loại đó.

Đối CheckBoxFor, bạn có thể sử dụng:

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myClass", id = "myID" }) 

Lưu ý @ trước class bởi vì đó là một từ khóa dành riêng trong C#

+0

Điều này sẽ không hoạt động với EditorFor. Lập luận thứ hai của nó không làm những gì hầu hết mọi người nghĩ rằng nó. –

+0

@DarinDimitrov Xin chào, cập nhật. – mattytommo

3

Thật dễ dàng cho CheckboxFor, bạn c hãy thực hiện như sau:

@Html.CheckBoxFor(m => m.RememberMe, new { @class="your_class", @id="the_id" }) 

Điều này hơi khó hơn với EditorFor vì nó KHÔNG được hỗ trợ bên ngoài hộp. Những gì tôi có nghĩa là bạn có thể tạo một mẫu cho từng loại và sau đó làm một TextBoxFor thêm thuộc tính html (giống cú pháp như với CheckBoxFor). Bạn có thể phải làm điều đó cho từng loại bạn muốn được hỗ trợ.

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