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-хэндлеров, установите его в модели или сверните свой собственный помощник.