Похоже, вы пытаетесь выбрать значение из списка выбора и отправить это значение в контроллер.Прежде всего, я бы предложил вам использовать ViewModel вместо магических строк.Вы должны изменить свой View, чтобы принять новую ViewModel, а затем опубликовать модель в вашем действии.Это просто, чище и удобнее в обслуживании.
Вот как будет выглядеть ваша модель
public class VehicleYearsViewModel {
public SelectList VehicleYears { get; set; }
public int SelectedYear { get; set; }
public VehicleYearsViewModel() {
VehicleYears = new SelectList(new[]
{
new{ID="1",Name="2012"},
new{ID="2",Name="2011"},
new{ID="3",Name="2010"},
new{ID="4",Name="2009"},
new{ID="5",Name="2008"},
new{ID="6",Name="2007"},
new{ID="7",Name="2006"},
new{ID="8",Name="2005"},
new{ID="9",Name="2004"},
new{ID="3",Name="2003"},
new{ID="3",Name="2002"},
new{ID="3",Name="2001"},
new{ID="3",Name="2000"}
}
}
}
Тогда ваш вид будет выглядеть так:
@YourAppName.Models.VehicleYearsViewModel
@using (Html.BeginForm()){
@Html.ValidationSummary(true)
@Html.DropDownListFor(model => model.SelectedYear, Model.VehicleYears, "ID", "Name", 1))
<input type="submit" value="OK" />
}
Ваш контроллерaction примет модель и может использовать выбранное значение в качестве типа данных int.Я просто предполагаю, что ваше действие контроллера не опубликовано, но это выглядит примерно так:
public class HomeController : Controller {
public ActionResult Index() {
var model = new VehicleYearsViewModel();
return View(model);
}
[HttpPost]
public ActionResult Index(VehicleYearsViewModel model) {
if(ModelState.IsValid) {
// you can get selected year like so
int selectedYear = model.SelectedYear;
// ... your code here to do whatever with selectedYear
}
return View(model);
}
}
Надеюсь, это поможет