Вопрос по asp.net-mvc, asp.net-mvc-3, asp.net-mvc-2 – передать выбранное значение раскрывающегося списка из представления в контроллер в mvc3?

3

У меня есть веб-приложение 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 и должны показать сетку с этими двумя значениями.

Ваш Ответ

2   ответа
0

mapping actionresult, в отображении actionresult получить раскрывающийся список параметров какmapping(string ID, string ddID), Возьмите эти значения для просмотра с помощью ViewData. Лучшим подходом будет создание модели представления для вида сетки и создание строго типизированного вида отображения и использование значения в сетке по мере необходимости.

3

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...   
}
Прекрасный @Shyju. Как мы можем использовать AutoMapper в действии GetThat для сопоставления модели домена с моделью представления?

Похожие вопросы