[英]Getting the chosen item from DropDownList
我使用JavaScript填充稱為“組”的列表。
然后創建一個DropDownList:
<div class="form-group">
<div class="col-md-10">
@Html.DropDownList("groups", new SelectList(string.Empty, "Value", "Text"), "Choose...")
</div>
</div>
DropDownList顯示正常。
我需要做的是將“組”中的選定值分配給model.group_id。 我不知道如何在控制器方法中的DropDownList中選擇所選項目。 感謝您的任何建議。
如果您需要它綁定到group_id
則使用它作為名稱:
@Html.DropDownList("group_id", ...)
或者,甚至更好地使用強類型的幫助器:
@Html.DropDownListFor(m => m.group_id, ...)
假設您的表單中有一個這樣的表單域,其名稱為group_id
並且出於某種原因,您希望從下拉列表中為該域設置所選值,
@Html.HiddenFor(s=>s.group_id)
<div class="form-group">
@Html.DropDownList("groups",new SelectList(string.Empty, "Value", "Text"), "Choose...")
</div>
您可以偵聽下拉菜單的change事件並獲取所選的選項值並將其設置為group_id
$(function(){
$("#groups").change(function(e){
var v=$(this).val();
$("#group_id").val(v);
});
});
我不確定為什么要通過javascript加載下拉列表內容,但是還有其他更好的方法來呈現下拉列表並將所選值傳遞回控制器,如本博文所述 。
將SelectedGroup
屬性添加到您的視圖模型
public class CreateSomethingViewModel
{
public int SelectedGroup {set;get;}
public List<SelectListItem> Groups {set;get;}
}
並且在GET操作中,如果要加載組,則可以執行此操作
public ActionResult Create()
{
var vm = new CreateSomethingViewModel();
//Hard coded for demo. You may replace with your db entries (see below)
vm.Groups = new List<SelectListItem> {
new SelectListItem { Value="1","Chase bank" },
new SelectListItem { Value="2","PNCbank" },
new SelectListItem { Value="3","BOA" }
};
return View(vm);
}
在您看來
@model CreateSomethingViewModel
@using(Html.BeginForm())
{
@Html.DropDownListFor(s=>s.SelectedGroup,Model.Groups)
<input type="submi" />
}
使用此方法,您無需使用任何js代碼(即使您通過javascript加載下拉菜單內容),當用戶更改下拉菜單選項值時,它將被設置為SelectedGroup
屬性的值。
[HttpPost]
public ActionResult Create(CreateSomethingViewModel model)
{
// check model.SelectedGroup
// to do : Save and return/redirect
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.