2013-03-22 38 views
6

Tôi biết điều này đã được thảo luận rất nhiều lần.Thuộc tính Html (5) cho EditorFor

Tôi muốn sử dụng

@Html.EditorFor(u => u.Password, new { required = "required" }) 

Unfortunatley này là không thể theo mặc định như EditorFor ghi đè thuộc tính Html.

Tôi không muốn sử dụng TextBoxFor vì tôi muốn giá trị được định dạng theo thuộc tính DisplayFormat.

Có giải pháp nào cho vấn đề này không?

+0

Bạn có ý gì khi 'ghi đè thuộc tính HTML'? –

+1

@mosquito: Câu hỏi của bạn thực sự là gì? Nếu bạn muốn xác nhận trường bắt buộc, bạn có thể đặt nó trong mô hình. – Sharun

Trả lời

10

Bạn có thể viết một mẫu biên tập tùy chỉnh cho kiểu string (~/Views/Shared/EditorTemplates/string.cshtml):

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

và sau đó:

@Html.EditorFor(u => u.Password, new { required = "required" }) 

sẽ làm việc như mong đợi.

+0

Vậy ý nghĩa của OP là gì bằng cách "ghi đè các thuộc tính HTML"? –

+2

@MichaelPerrenoud, tại sao bạn lại hỏi tôi? Hỏi OP. Tôi đoán ý của anh ta là tham số 'new {required =" required "}' mà anh ta chuyển tới template editor không có tác dụng gì hoàn toàn bình thường vì template editor mặc định được xây dựng trong ASP.NET MVC không sử dụng chúng. Đó là lý do tại sao tôi đề xuất tạo mẫu trình chỉnh sửa tùy chỉnh sẽ sử dụng các thông số đó. –

+0

Hoàn hảo, cảm ơn bạn đã làm rõ! –

-1

Không chắc chắn đó là một tùy chọn nhưng bạn chỉ có thể đặt [Bắt buộc] làm trình trang trí thuộc tính trên Mô hình.

+2

Không, điều này không ảnh hưởng đến thuộc tính html mà tôi muốn. – mosquito87

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