簡體   English   中英

從DropDownList獲取選定的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM