В отличие от классических веб-форм в ASP.NET MVC нет такого понятия, как PostBack.Итак, для начала вам нужна модель, которая будет представлять ваши данные:
public class MyViewModel
{
public string SelectedCountry { get; set; }
public IEnumerable<SelectListItem> Countries { get; set; }
}
Затем вам понадобится контроллер, который определяет два действия: одно для рендеринга формы, а другое для обработки отправки:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
// you probably would fetch those from the database
Countries = new SelectList(new[]
{
new { Value = "FR", Text = "France" },
new { Value = "US", Text = "USA" }
}, "Value", "Text")
};
return View(model);
}
[HttpPost]
public ActionResult Index(string selectedCountry)
{
// selectedCountry will contain the code that you could use to
// query your database
return RedirectToAction("index");
}
}
И, наконец, вы можете добавить строго типизированное представление к модели, которая будет содержать разметку:
<% using (Html.BeginForm()) { %>
<%: Html.DropDownListFor(x => x.SelectedCountry, Model.Countries) %>
<input type="submit" name="OK" />
<% } %>
Если ничего из этого не имеет для вас никакого смысла, я бы предложил вам чтение учебников по началу работы .