MVC3 HTMLHelper по умолчанию
2 MikeTWebb [2011-10-25 18:14:00]
У меня есть помощник html, который я хотел бы установить по умолчанию.
@Html.EditorFor(model => model.DateFrom)
Какой синтаксис задает значение по умолчанию для хелпера, если model.DateFrom имеет значение null?
asp.net-mvc-3 html-helper
2 ответа
4 Решение Henry [2011-10-25 18:21:00]
Я не думаю, что с помощью EditorFor вы можете установить значение по умолчанию. Попробуйте установить его в аксессуарах на вашей модели?
Чтобы сделать это на других типах (TextBoxFor и т.д.), вы можете установить значение, но не значение по умолчанию. Поэтому вам нужно будет сделать:
@if(Model.something == null)
{
@Html.TextBoxFor(m => m.ID, new { @Value = "Value!"})
} else {
@Html.TextBoxFor(m => m.ID)
}
Как я бы рекомендовал:
private DateTime? _date;
public DateTime? date {
get {
if(_date == null)
_date = DateTime.Now;
return _date;
}
set {
_date = value;
}
}
Использование таких вещей, как jquery date picker, позволяет вам иметь значение по умолчанию, если проблема в том, что вы просто ничего не отправляете, если он не был выбран.
2 Jesse [2011-10-25 18:29:00]
Я считаю, что единственным помощником HTML, поддерживающим значение по умолчанию, является Html.DropDownList(). Он имеет параметр optionLabel, который позволяет вам установить параметр по умолчанию в верхней части выпадающего списка. Например:
Html.DropDownList("CustomerId", "Select a Customer")
Как Генри, упомянутый, если вы хотите установить значение по умолчанию для других HTML-хэндлеров, установите его в модели или сверните свой собственный помощник.