我正在尝试构建一个下拉列表,但与 Html.DropDownList 渲染作斗争。
我有一堂课:
public class AccountTransactionView
{
public IEnumerable<SelectListItem> Accounts { get; set; }
public int SelectedAccountId { get; set; }
}
这基本上是我现在的视图模型。帐户列表,以及用于返回所选项目的属性。
在我的控制器中,我像这样准备好数据:
public ActionResult AccountTransaction(AccountTransactionView model)
{
List<AccountDto> accounts = Services.AccountServices.GetAccounts(false);
AccountTransactionView v = new AccountTransactionView
{
Accounts = (from a in accounts
select new SelectListItem
{
Text = a.Description,
Value = a.AccountId.ToString(),
Selected = false
}),
};
return View(model);
}
现在的问题:
然后我试图在我的视图中构建下拉:
<%=Html.DropDownList("SelectedAccountId", Model.Accounts) %>
我收到以下错误:
具有键“SelectedAccountId”的 ViewData 项属于“System.Int32”类型,但必须属于“IEnumerable”类型。
为什么它要我返回整个项目列表?我只想要选定的值。我应该怎么做?