私がこのようなViewModelを持っている場合:
public class SignupViewModel
{
[Required]
[DisplayName("Email:")]
public string EmailAddress { get; set; }
}
そして、EditorForを使用してフォームフィールドをレンダリングします。
@Html.EditorFor(model => model.EmailAddress )
レンダリングされます<input type="text">
。涼しい。
しかし、この特定のシナリオでは、私はすでに別のソースから電子メールを取得しており、フォームにこのデータを事前に入力し、テキストボックスの代わりにラベルを表示したいと思います(電子メールを変更したくないため-理由は気にしないでください)。
使用できることはわかって[UIHint]
いますが、コントローラーからプログラムで使用できますか?
例えば:
var model = new SignupViewModel();
model.EmailAddress = GetFromMysterySource(); // How do i set a UIHint?
これにアプローチするための最良の方法は何ですか?別のViewModelを完全に使用する必要があります。これは、ビューを強い型から強い型に変更することを意味する可能性がありますか、dynamic
使用しないEditorFor
か、カスタムエディターテンプレートを使用する必要がありますか?
提案/アドバイスをいただければ幸いです。