构建DropDownList和Asp.Net MVC

时间:2011-01-28 21:40:36

标签: asp.net-mvc drop-down-menu

我正在尝试为我的MVC应用程序构建一个简单的下拉列表。我有一个方法可以获取一个List,它具有帐户名,ID,已删除等属性...并且拥有不同的银行帐户。

在我的控制器中,我正在调用它,然后使用Linq,尝试构建一个SelectItemList ......就像这样:

        public ActionResult AccountTransaction(AccountTransactionView model)
    {
        List<AccountDto> accounts = Services.AccountServices.GetAccounts(false);

        AccountTransactionView v = new AccountTransactionView();
        v.Accounts = (from a in accounts
                      select new SelectListItem
                                 {
                                     Text = a.Description,
                                     Value = a.AccountId.ToString(),
                                     Selected = false
                                 });



        return View();
    }

然而,它失败了,说我无法将IEnumerable SelectListItem转换为SelectList。

我的AccountTransactionView定义如下:

    public class AccountTransactionView
{
    public SelectList Accounts { get; set; }
    public int SelectedAccountId { get; set; }

}

1 个答案:

答案 0 :(得分:1)

SelectList是包含SelectListItems的包装器。您可以通过传入IEnumerable和可选的项目来创建SelectList。

修改 对不起,我不是很清楚。我的意思是你应该在construstor中使用带有IEnumerable的SelectList而不是IEnumerable本身:

    List<AccountDto> accounts = Services.AccountServices.GetAccounts(false);

    AccountTransactionView v = new AccountTransactionView();
    v.Accounts = new SelectList(
                       (from a in accounts
                        select new SelectListItem
                                   {
                                       Text = a.Description,
                                       Value = a.AccountId.ToString(),
                                       Selected = false
                                   }
                       )
                       );

    return View();
}