2013-03-22 13 views
6

私はこれが何度も議論されていることを知っています。EditorForのためのHtml(5)属性

私はEditorForは、HTML属性を上書きして、これはデフォルトではできませんUnfortunatley

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

を使用したいと思います。

TextBoxForを使用したくない理由は、値をDisplayFormat属性に従ってフォーマットしたいからです。

解決方法はありますか?

+0

「HTML属性を上書きする」とはどういう意味ですか? –

+1

@mosquito:実際にあなたの質問は何ですか?フィールドの検証が必要な場合は、モデルに設定することができます。 – Sharun

答えて

10

あなたは文字列型(~/Views/Shared/EditorTemplates/string.cshtml)用のカスタムエディタテンプレートを書くことができます:

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

、その後:予想通り

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

は動作します。

+0

したがって、OPの意味は 'HTML属性を上書きする 'でしょうか? –

+2

@MichaelPerrenoud、なぜ私に尋ねていますか? OPに尋ねる彼が意図したことは、彼がエディタテンプレートに渡していた 'new {required =" required "}"パラメータは、デフォルトエディタテンプレートの組み込みASP.NET MVCが使用しないため、それら。だから、私はそれらのパラメータを使用するカスタムエディタテンプレートを作成することを提案しました。 –

+0

パーフェクト、明確化のおかげで! –

-1

[オプション]を確認することはできませんが、[必須]をモデルのプロパティデコレータとして配置するだけです。

+2

いいえ、これは私が望むhtml属性には影響しません。 – mosquito87