Вопрос по asp.net-mvc, asp.net-mvc-3, asp.net-mvc-2 – передать выбранное значение раскрывающегося списка из представления в контроллер в mvc3?
У меня есть веб-приложение mvc3. В этом я использовал EF и заполнил два выпадающих списка из базы данных.
Теперь, когда я выбираю значения из этих выпадающих списков, мне нужно показать их в сетке Как я могу это сделать?
<code>@using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Mapping</legend> <div class="editor-label"> @Html.Label("Pricing SecurityID") </div> <div class="editor-field"> @Html.DropDownListFor(model => model.ID, new SelectList(Model.ID, "Value", "Text"), "-- Select category --" ) @Html.ValidationMessageFor(model => model.ID) </div> <div class="editor-label"> @Html.Label("CUSIP ID") </div> <div class="editor-field"> @Html.DropDownListFor(model => model.ddlId, new SelectList(Model.ddlId, "Value", "Text"), "-- Select category --" ) @Html.ValidationMessageFor(model => model.ddlId) </div> <p> <input type="submit" value="Mapping" /> </p> </fieldset> } </code>
когда я нажал наMapping
Кнопка будет перейти на новую страницу под названиемMapping.cshtml
и должны показать сетку с этими двумя значениями.
mapping actionresult
, в отображении actionresult получить раскрывающийся список параметров какmapping(string ID, string ddID)
, Возьмите эти значения для просмотра с помощью ViewData.
Лучшим подходом будет создание модели представления для вида сетки и создание строго типизированного вида отображения и использование значения в сетке по мере необходимости.
public class YourClassViewModel
{
public IEnumerable<SelectListItem> Securities{ get; set; }
public int SelectedSecurityId { get; set; }
public IEnumerable<SelectListItem> CUSIPs{ get; set; }
public int SelectedCUSIPId { get; set; }
}
и в моем методе Get Action я верну эту ViewModel моему строго типизированному представлению
public ActionResult GetThat()
{
YourClassViewModel objVM=new YourClassViewModel();
objVm.Securities=GetAllSecurities() // Get all securities from your data layer
objVm.CUSIPs=GetAllCUSIPs() // Get all CUSIPsfrom your data layer
return View(objVm);
}
И на мой взгляд, который сильно напечатан,
@model YourClassViewModel
@using (Html.BeginForm())
{
Security :
@Html.DropDownListFor(x => x.SelectedSecurityId ,new SelectList(Model.Securities, "Value", "Text"),"Select one") <br/>
CUSP:
@Html.DropDownListFor(x => x.SelectedCUSIPId ,new SelectList(Model.CUSIPs, "Value", "Text"),"Select one") <br/>
<input type="submit" value="Save" />
}
и теперь в моем методе HttpPost Action я приму эту ViewModel в качестве параметра, и у меня будет там значение Selected
[HttpPost]
public ActionResult GetThat(YourClassViewModel objVM)
{
// You can access like objVM.SelectedSecurityId
//Save or whatever you do please...
}