Попробуйте удалить эти теги сервера runat.Они не должны использоваться в ASP.NET MVC.Также у вашего выбора нет имени.Если элемент ввода не имеет имени, он ничего не отправит.Кроме того, ваши теги параметров должны иметь атрибуты значения, которые указывают, какое значение будет отправлено на сервер, если выбраны эти параметры:
<form action="/Home/Create" method="post">
<p>
<select id="BLAHBLAH2" name="BLAHBLAH2">
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
</select>
<input type="submit" value="Change Year" />
</p>
</form>
Но правильный способ создания форм в ASP.NET MVC - это использование помощников HTML.,В зависимости от используемого вами механизма представления синтаксис может отличаться.Вот пример с механизмом представления Razor:
@model MyViewModel
@using (Html.BeginForm("Create", "Home"))
{
<p>
@Html.DropDownListFor(x => x.SelectedYear, Model.Years)
<input type="submit" value="Change Year" />
</p>
}
Здесь у вас есть строго типизированное представление для некоторой данной модели представления:
public class MyViewModel
{
public string SelectedYear { get; set; }
public IEnumerable<SelectListItem> Years
{
get
{
return Enumerable
.Range(2010, 4)
.Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
});
}
}
}
, которое заполняется некоторым действием контроллера, которое будет визуализироватьэтот взгляд:
public class HomeController: Controller
{
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}
[HttpPost]
public ActionResult Create(MyViewModel model)
{
... model.SelectedYear will contain the selected year
}
}