2013-05-19 30 views
0

我在部分视图中使用@ Html.DropDownList来显示银行列表并将其呈现在银行分行视图中。 如何获取@ Html.DropDownList中选定的银行并在BankBranchModel中填入BankId。从MVC中获取选定的DropDownList项部分视图

这里是我的代码:

BankBranchModel:

public class BankBranchModel : BaseModel 
{ 
    public int? **BankID** { get; set; } 
    public string Name { get; set; } 
    public string Code { get; set; } 
    public string Phone { get; set; } 
    public string Address { get; set; } 
} 

我的部分观点:

@Html.DropDownList("Banks", Model , "- Please Select -"}) 

BankBranch查看:

@model MvcFirstSample.Models.BankBranchModel 
@{ 
    ViewBag.Title = "create"; 
} 

<h2>create</h2> 

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary(true) 


    <div class="editor-field"> 
     **@Html.Action("GetAllBank", "BankBranch")** 

    </div> 

GetAllBanks回国的部分观点:

public ActionResult GetAllBank() 
     { 

      var Banks = Context.Banks.ToList(); 
      List<BankLookup> BankLookupList = new List<BankLookup>(); 

      var listItems = new List<SelectListItem>(); 

      foreach (var Bank in Banks) 
      { 
       listItems.Add(new SelectListItem { Text = Bank.Name, Value = Bank.Id.ToString()}); 
      } 

      **return PartialView("BankLookup", listItems);** 
     } 

回答

1

为什么你不想使用ViewBag? 在你Partial View你可以说:

@Html.DropDownList("listItems",(IEnumerable<SelectListItem>)ViewBag.listItems) 

,然后使用Jquery获得选择的项目:

 var selectBanks= $("#listItems"); 

     var selectedOptionId = selectBanks.find("option:selected").val(); 

然后填充为bankid输入假定它有bankid的ID:

 $("#bankid").val(selectedOptionId); 
0

这里有一种方法......

在您的局部视图:

@Html.DropDownList("bank_list") 

在您的控制器,通过结合ID和值填充列表:

ViewBag.bank_list = new SelectList(listItems, "Text", "Value"); 
+0

谢谢为你的答案,但我不想使用viewBag。 –

+0

如果是这样的话,你可能要考虑JQuery/Javascript。这有点多,所以你应该多研究一下。 – skyacct

相关问题