簡體   English   中英

@ Html.DropDownList未顯示所選值

[英]@Html.DropDownList not showing selected value

我正在嘗試創建一個局部視圖,以在每個視圖上創建下拉菜單。 已創建了一個視圖模型和相同的部分視圖。 其創建下拉列表正確,但未顯示所選值。

下面是視圖模型類

public class drowDownVM
   {
       public string id { get; set; }
       public string name { get; set; }
       public string cssClass { get; set; }
       public string keyColumnName { get; set; }
       public string valueColumnName { get; set; }
       public string selectedValue { get; set; }
       public string viewbagName { get; set; }
       public bool isMultipleSelect { get; set; }
       public List<int> multipleselectedValue { get; set; }
   }

下面是綁定下拉的局部視圖

@if (Model != null)
{
   if (ViewData != null && ViewData.Count > 0 && ViewData.Keys.Contains(Model.viewbagName))
   {
       string ddName = !(string.IsNullOrEmpty(Model.name)) ? Model.name : "default-name";
       string viewBagName = !(string.IsNullOrEmpty(Model.viewbagName)) ? Model.viewbagName : ViewData.Keys.First();
       string keyColumnName = !(string.IsNullOrEmpty(Model.keyColumnName)) ? Model.keyColumnName : "id";
       string valueColumnName = !(string.IsNullOrEmpty(Model.valueColumnName)) ? Model.valueColumnName : "id";
       string selectedVal = !(string.IsNullOrEmpty(Model.selectedValue)) ? Model.selectedValue : "";
       List<int> multipleSelectVal = (Model.multipleselectedValue != null && Model.multipleselectedValue.Count > 0) ? Model.multipleselectedValue : new List<int>();
       var cssClass = !(string.IsNullOrEmpty(Model.cssClass)) ? Model.cssClass : "";
       if (!Model.isMultipleSelect)
       {
           <div>
               @Html.DropDownList(ddName, new SelectList((System.Collections.IEnumerable)ViewData[viewBagName], keyColumnName, valueColumnName, 2), "--Select--", new { @class = cssClass, @data_Val = selectedVal })
           </div>
       }
       else
       {
           @Html.ListBox(ddName, new MultiSelectList((System.Collections.IEnumerable)ViewData[viewBagName], keyColumnName, valueColumnName, multipleSelectVal), new { @class = cssClass, @multiple = "multiple"})
       }
   }
}
else
{
   <p class="hidden">Model Data Not Found!</p>
}

下面是調用局部視圖綁定下拉菜單的代碼,第一個是單選,第二個是調用多選。

@Html.Partial("_dropdown", new drowDownVM() { cssClass = "form-control", id = "TargetTypeList", keyColumnName = "code_val", name = "TargetTypeList", selectedValue = "1", valueColumnName = "code_name", viewbagName = "TargetTypeList"})

@Html.Partial("_dropdown", new drowDownVM() { cssClass = "form-control", id = "TargetTypeList", isMultipleSelect = true, keyColumnName = "code_val", name = "TargetTypeList", selectedValue = "1", valueColumnName = "code_name", viewbagName = "TargetTypeList", multipleselectedValue = new List<int>() { 1, 2 } })
<div>
    @Html.DropDownList(ddName, new SelectList((System.Collections.IEnumerable)ViewData[@ViewBag.ViewBagName], keyColumnName, valueColumnName, 2), "--Select--", new { @class = cssClass, @data_Val = selectedVal })
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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