我的项目中有这样的场景。我正在使用 MVC3,但我相信这会适用。
在我的 ViewModel 中,我有一个属性定义如下:
private List<SelectListItemWithAttributes> pLeadDispositions = null;
public List<SelectListItemWithAttributes> LeadDispositions {
get {
var LeadDispositionItems = (
from c in db.GetLeadDispositionList(1, 1000)
where c.AccountTypeID == this.AccountTypeID
select new SelectListItemWithAttributes() { Text = c.Title, Value = c.ID.ToString(), HtmlAttributes = new Dictionary<string, string> { { "data-callback", c.RequiresCallback.ToString().ToLower() } } } ).ToList()
;
LeadDispositionItems.Insert(0, new SelectListItemWithAttributes() { Text = "-- Select --", Value = "", HtmlAttributes = new Dictionary<string, string> { { "data-callback", "false" } } });
return LeadDispositionItems;
}
}
SelectListItemWithAttributes 只是我正在使用的 SelectListItem 的子类,因此您可以将其替换为 SelectListItem 并修改参数列表。GetLeadDispositionList 是一个存储过程,可以从数据库中获取我需要的数据。
在我看来是这样的:
@Html.DropDownListWithItemAttributesFor(m => m.LeadDispositionID, Model.LeadDispositions)
DropDownListWithItemAttributesFor 是我在项目中使用的 DropDownListFor 的子类,因此只需替换 DropDownListFor
我知道这不是您正在寻找的东西,但也许它会让您指向正确的方向。
我希望这有帮助。