Я вижу, что вы используете формы с runat="server"
и asp:XXX
веб-элементы управления. Эти понятия никогда не должны использоваться в ASP.NET MVC. Больше нет ViewState и PostBacks, на которые полагаются эти серверные элементы управления.
Так в ASP.NET MVC вы бы начать с определением модели представления, представляющим данные:
public class ItemsViewModel
{
public string SelectedItemId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
, то вы бы определить контроллер с двумя действиями (тот, который делает вид, а другие, что ручки представление формы):
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new ItemsViewModel
{
Items = new[]
{
new SelectListItem { Value = "Theory", Text = "Theory" },
new SelectListItem { Value = "Appliance", Text = "Appliance" },
new SelectListItem { Value = "Lab", Text = "Lab" }
}
};
return View(model);
}
[HttpPost]
public ActionResult Index(ItemsViewModel model)
{
// this action will be invoked when the form is submitted and
// model.SelectedItemId will contain the selected value
...
}
}
и, наконец, вы должны написать соответствующий строго типизированный Index
вид:
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<AppName.Models.ItemsViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) { %>
<%= Html.DropDownListFor(x => x.SelectedItemId, new SelectList(Model.Items, "Value", "Text")) %>
<input type="submit" value="OK" />
<% } %>
</asp:Content>
Это существо сказал, что вы могли бы также жёстко этот выбор внутри вашей точки зрения (хотя это то, что я бы не рекомендовал):
<% using (Html.BeginForm()) { %>
<select name="selectedItem">
<option value="Theory">Theory</option>
<option value="Appliance">Appliance</option>
<option value="Lab">Lab</option>
</select>
<input type="submit" value="OK" />
<% } %>
и имеют следующий контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string selectedItem)
{
// this action will be invoked when the form is submitted and
// selectedItem will contain the selected value
...
}
}
Как может Я использую этот код var model = new ItemsViewModel { Items = new [] { новый SelectListItem {Value = "Theory", Text = "Theory"}, new Выбрать ListItem {Value = "Appliance", Text = "Appliance"}, new SelectListItem {Value = "Lab", Text = "Lab"} } }; если я хочу получить значения выпадающего списка из базы данных. пожалуйста, предложите мне, что мне делать, если я беру значения из базы данных, а какой код я буду использовать? –
@Pushpendra Kuntal, который будет зависеть от того, какую базу данных вы используете, как выглядит ваша схема таблицы базы данных и какая технология доступа к базе данных вы используете. –