【问题标题】:Drop Down List MVC4下拉列表 MVC4
【发布时间】:2013-12-29 22:18:51
【问题描述】:

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

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

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&lt;AccountPortfolioListModel&gt;())传递给我的视图。

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

@model List<BasicFinanceUI.Models.AccountPortfolioListModel>

但后来我被困住了。我想在下拉列表中显示列表,并带有一个按钮来选择选定的列表,然后调用 Post 方法。

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

【问题讨论】:

  • 如果您要在其他地方重用下拉菜单,请将其放在局部视图中,否则它可以成为 _Layout 页面的一部分。另外,我不会让你的模型只是一个列表,我会有一个具有列表属性的模型。如果您以后碰巧添加其他内容会更容易。

标签: asp.net-mvc-4


【解决方案1】:

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

@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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多