Правильно, если вы строите список в коде и присваиваете каждой опции уникальный идентификатор, тогда вы можете получить этот идентификатор и объединить его с элементом кода и, таким образом, текстом.
Итак,
public class MonthlyItemsFormViewModel
{
public SelectList Months;
public string SelectedMonth {get;set;}
}
тогда;
public ActionResult Index()
{
MonthlyItemsFormViewModel fvm = new MonthlyItemsFormViewModel();
FillData(fvm, DateTime.Now);
return View(fvm);
}
А потом;
private void FillData(MonthlyItemsFormViewModel fvm, DateTime SelectedMonth)
{
List<string> months = DateTime.Now.MonthList(DateTime.Now);
fvm.Months = new SelectList(months, fvm.SelectedMonth);
}
Тогда, на ваш взгляд;
<% using (Html.BeginForm()) { %>
<%=Html.DropDownList("selectedMonth", Model.Months) %>
<%} %>
Тогда на пост обратно;
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection collection)
{
MonthlyItemsFormViewModel fvm = new MonthlyItemsFormViewModel();
UpdateModel(fvm);
FillData(fvm, DateTime.Parse(DateTime.Now.Year.ToString() + " " + fvm.SelectedMonth + " 01"));
return View(fvm);
}
В коде поста вы можете взять выбранное значение из fvm, а затем объединить это значение с элементом в вашем списке выбора.
этот код взят непосредственно из моего кода, поэтому, возможно, потребуется изменить его в соответствии с вашей ситуацией.
Имеет ли это смысл?