我注意到在我看來,在asp.net MVC中的錯誤,或者只是我做錯了什麼。我目前正在使用1.0,所以也許這將在2.0版本中解決。但無論如何,我們走吧。DropDownList設置在asp.net MVC的選定項目
當我的視圖模型的屬性與下拉列表中聲明的ID名稱相同時,所選項目將被忽略,並且呈現的html沒有任何選定內容。 不知道我是否做錯了,但更改id的名稱可以解決問題。我簡化了這個例子,希望它很清楚,否則請讓我知道。
這是我的看法,其中宣佈ID是相同的名稱作爲我的列表模型:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<%= Html.DropDownList("IsMultipleServicers", Model.IsMultipleServicers) %>
</td>
</tr>
</table>
而呈現的HTML
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<select id="IsMultipleServicers" name="IsMultipleServicers">
<option value="false">No</option>
<option value="true">Yes</option>
</select>
</td>
</tr>
</table>
現在,讓我們做一個小變化。我會將聲明的ID更改爲不同的內容。
這是我的觀點:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<%= Html.DropDownList("MultipleServicers", Model.IsMultipleServicers) %>
</td>
</tr>
</table>
現在呈現的HTML:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<select id="IsMultipleServicers" name="IsMultipleServicers">
<option value="false">No</option>
<option selected="selected" value="true">Yes</option>
</select>
</td>
</tr>
</table>
注意,現在我得到一個選擇的選項,將在列表中的第二個元素。
這裏是我的ViewModel只是整合實驗:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCProject.Models.ViewModels.Service
{
public class ServiceViewModel : ViewModel
{
public List<SelectListItem> IsMultipleServicers { get; set; }
}
}
這裏是我的行動:
[AcceptVerbs(HttpVerbs.Get)]
public virtual ActionResult Service()
{
return View(new ServiceViewModel()
{
IsMultipleServicers = BuildBooleanSelectList(true)
};
}
private List<SelectListItem> BuildBooleanSelectList(bool isTrue)
{
List<SelectListItem> list = new List<SelectListItem>();
if (isTrue)
{
list.Add(new SelectListItem() { Selected = false, Text = "No", Value = "false" });
list.Add(new SelectListItem() { Selected = true, Text = "Yes", Value = "true" });
}
else
{
list.Add(new SelectListItem() { Selected = true, Text = "No", Value = "false" });
list.Add(new SelectListItem() { Selected = false, Text = "Yes", Value = "true" });
}
return list;
}
我想這是比較明顯的。但現在是有意義的。謝謝 – ppumkin 2015-04-14 09:58:12
我會建議你所有這一個:http://www.c-sharpcorner.com/UploadFile/4d9083/creating-simple-cascading-dropdownlist-in-mvc-4-using-razor/ – Umitk 2015-08-12 09:26:46