下拉列表MVC4

时间:2013-12-29 22:18:51

标签: asp.net-mvc-4

我正在构建一个部分视图,其中显示了用户可以选择的帐户列表。它显示在布局页面上,因为它们可以在会话中的任何时间在帐户之间切换。

在我的控制器中,我返回了一个帐户列表,并为部分视图构建了一个模型:

public ActionResult AccountPortfolios()
        {
            var personId = int.Parse(User.Identity.Name);
            var ports = new AccountService().GetPortfoliosByPersonId(personId);

            var result = new List<AccountPortfolioListModel>();

            foreach (var port in ports)
            {
                result.Add(new AccountPortfolioListModel
                    {
                        Description = port.Description,
                        Id = port.Id
                    });
            }

            return View(result);

        }

然后我将模型(List<AccountPortfolioListModel>()传递给我的视图。

在我看来,我将模型声明为:

@model List<BasicFinanceUI.Models.AccountPortfolioListModel>

然后我被困住了。我想在下拉列表中显示列表,使用一个按钮来选择所选列表,然后调用Post方法。

另外,我使用正确的东西吗?部分视图显示我的布局页面上可见的内容下拉列表?

1 个答案:

答案 0 :(得分:2)

我们喜欢使用静态调用来填充下拉列表

@Html.DropDownListFor(x => x.Account, PathToController.AccountList())

然后在您的控制器上

public static List<SelectListItem> AccountList(){
    List<SelectListItem> ls = new List<SelectListItem>();
    //populate your list
    return ls;
}

我不知道您只需要一个部分视图来下拉。我如何做到这一点是将输入变量放在帐户的索引操作

public ActionResult Index(string account)

然后点击你的按钮点击事件

window.location = '@Url.Action("Index", "Controller", new { account = "----" })'.replace("----", $('#Account').val());