3

我有 mvc3 网络应用程序。我使用了 EF 并从数据库中填充了两个下拉列表。

现在,当我从这些下拉列表中选择值时,我需要在 webgrid 中显示它们我该怎么做?

@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>
}

当我单击Mapping按钮时,它将转到新页面Mapping.cshtml,并且必须显示带有这两个值的 webgrid。

4

2 回答 2

3

我会创建一个 ViewModel

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...   
}
于 2012-04-12T18:56:38.577 回答
0

将表格发布到mapping actionresult. 在 actionresult 映射中接收下拉参数为mapping(string ID, string ddID). 使用 ViewData 获取这些值以查看。更好的方法是为网格视图创建一个视图模型,并使您的映射视图具有强类型,并根据需要在网格上使用值

于 2012-04-12T18:45:11.037 回答