我正在构建一个部分视图,其中显示了用户可以选择的帐户列表。它显示在布局页面上,因为它们可以在会话中的任何时间在帐户之间切换。
在我的控制器中,我返回了一个帐户列表,并为部分视图构建了一个模型:
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方法。
另外,我使用正确的东西吗?部分视图显示我的布局页面上可见的内容下拉列表?
答案 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());