Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 下拉列表MVC4_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 下拉列表MVC4

Asp.net mvc 4 下拉列表MVC4,asp.net-mvc-4,Asp.net Mvc 4,我正在构建一个局部视图,其中显示用户可以选择的帐户列表。它显示在布局页面上,因为他们可以在会话中随时在帐户之间切换 在我的控制器中,我返回了一个帐户列表,并为局部视图构建了一个模型: public ActionResult AccountPortfolios() { var personId = int.Parse(User.Identity.Name); var ports = new AccountService().GetPo

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

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

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

        }
public ActionResult accountportfolions()
{
var personId=int.Parse(User.Identity.Name);
var ports=new AccountService().GetPortfoliosByPersonId(personId);
var result=新列表();
foreach(端口中的var端口)
{
结果.添加(新帐户PortfoliolisModel)
{
Description=端口。Description,
Id=端口Id
});
}
返回视图(结果);
}
然后,我将模型(即
List()
传递到我的视图

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

@model List<BasicFinanceUI.Models.AccountPortfolioListModel>
@型号列表
但是我被卡住了。我想在下拉列表中显示列表,用一个按钮选择所选的列表,然后调用Post方法


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

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

@Html.DropDownListFor(x => x.Account, PathToController.AccountList())
然后在你的控制器上

public static List<SelectListItem> AccountList(){
    List<SelectListItem> ls = new List<SelectListItem>();
    //populate your list
    return ls;
}
然后在按钮上单击事件

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

如果要在其他位置重用下拉列表,请将其放在局部视图中,否则它可能是_布局页面的一部分。此外,我不会让您的模型只是一个列表,我会使用一个具有列表属性的模型。如果您稍后碰巧在其中添加其他内容,这会更容易。
window.location = '@Url.Action("Index", "Controller", new { account = "----" })'.replace("----", $('#Account').val());