#asp.net-mvc #asp.net-mvc-3 #razor
#asp.net-mvc #asp.net-mvc-3 #бритва #razor
Вопрос:
Я использую MVC3 / Razor и хочу привязать выпадающий список с текущим номером плюс 3 предыдущих года, например,
2011
2010
2009
2008
Как это сделать? Пожалуйста, помогите
Комментарии:
1. есть ли какой-нибудь способ установить ViewData для сохранения выбранного года? при первой загрузке он должен показывать текущий год?
Ответ №1:
Добавьте приведенное ниже для просмотра, чтобы создать выпадающий список (измените модель.Год для исправления свойства модели)
<div class="editor-field">
@Html.DropDownList("Years",new SelectList(ViewBag.Years as System.Collections.IEnumerable,Model.Year))
@Html.ValidationMessageFor(model => model.Year)
</div>
Добавьте приведенное ниже куда-нибудь в свой контроллер или вспомогательный класс
private void GetYears()
{
List<int> Years = new List<int>();
DateTime startYear = DateTime.Now;
while (startYear.Year <= DateTime.Now.AddYears(3).Year)
{
Years.Add(startYear.Year);
startYear = startYear.AddYears(1);
}
ViewBag.Years = Years;
}
А затем добавьте нижеприведенную строку к любому методу, который будет вызван для возврата представления (т. Е. Индекса)
getYears();
Ответ №2:
Используя вышеупомянутое решение, но с альтернативой для getYears()
private void GetYears()
{
ViewBag.Years = Enumerable.Range(DateTime.Now.Year, 4);
}