2013-03-22 63 views
6

我知道這已經討論了很多次。HTML(5)屬性爲EditorFor

我想使用

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

Unfortunatley作爲EditorFor覆蓋HTML屬性,這是不是默認可能。

我不想使用TextBoxFor,因爲我想根據DisplayFormat屬性對值進行格式化。

有沒有解決方案?

+0

「覆蓋HTML屬性」是什麼意思? – 2013-03-22 09:49:41

+1

@mosquito:你的問題實際上是什麼?如果你想要的字段驗證,你可以在模型中進行設置。 – Sharun 2013-03-22 09:53:15

回答

10

你可以寫一個自定義編輯器模板的字符串類型(~/Views/Shared/EditorTemplates/string.cshtml):

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

然後:

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

會達到預期效果。

+0

那麼OP表示「覆蓋HTML屬性」是什麼意思? – 2013-03-22 09:58:34

+2

@MichaelPerrenoud,你爲什麼問我?詢問OP。我想他的意思是,他傳遞給編輯器模板的'new {required =「required」}'參數沒有任何影響,這是完全正常的,因爲內置ASP.NET MVC的默認編輯器模板不使用他們。這就是爲什麼我建議創建一個使用這些參數的自定義編輯器模板。 – 2013-03-22 09:59:56

+0

完美,謝謝澄清! – 2013-03-22 10:02:27

-1

不確定這是一個選項,但您可以將[必需]作爲模型上的屬性裝飾器。

+2

不,這對我想要的html屬性沒有影響。 – mosquito87 2013-03-23 13:28:01