Если у меня есть 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
, или я должен использовать пользовательский шаблон редактора?
Предложения/ совет будет с благодарностью.