我在查看中有Html.DropDownList
元素。
<%= Html.DropDownList("ID", (IEnumerable<SelectListItem>)ViewData["VItemID"])%>
在控制器中:
ViewData["VItemID"] = new SelectList(_dataManager.myItems.getItems(), "ID", "ItemID");
我想用text =“----”添加选项。我想在视图层中进行。
我用jquery完成了这个,但我认为使用js代码来解决问题并不是一个好主意。
这样做的最佳方式是什么?
答案 0 :(得分:3)
您可以使用proper helper overload:
<%= Html.DropDownList(
"ID",
(IEnumerable<SelectListItem>)ViewData["VItemID"],
"--- Please Select a Value ---")
%>
答案 1 :(得分:1)
最好的方法是在模型中执行此操作,并使用默认值创建SelectItemList
。如果你坚持在View中执行它,那么JQuery与其他任何方法一样有效。
答案 2 :(得分:0)
自定义ViewData [“VHouseTypes”]功能。
public string GetDDLClients(int id)
{
string format = "<option value=\"{0}\" {2} >{1}</option>";
StringBuilder sb = new StringBuilder();
//string format = "<option value=\"{0}\">{1}</option>";
string formatSelected = "<option value=\"{0}\" selected=\"selected\">{1}</option>";
List<Highmark.BLL.Models.Client> client = Highmark.BLL.Services.ClientService.GetAll("", false);
sb.AppendFormat(formatSelected, "Select", "All Clients");
foreach (var item in client)
{
if (item.ClientID == id)
sb.AppendFormat(format, item.ClientID, item.CompanyName, "selected=\"selected\"");
else
sb.AppendFormat(format, item.ClientID, item.CompanyName, "");
}
return sb.ToString();
}