使用服务器端数据绑定cshtml中的下拉列表

时间:2014-02-03 18:01:34

标签: asp.net-mvc-4 razor

我有用户列表并希望将其绑定在顶部导航栏上,这对于许多页面始终可见,我如何绑定它,我不想在每个文件上添加代码,mvc4中是否有任何方法为每个视图调用?

我的观点:

<div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Name Three<b class="caret"></b></a>
                        <ul class="dropdown-menu">
//Here i want to show data dynamically, data can be in collection.
                            <li><a href="#">Name one</a></li>
                            <li><a href="#">Name two</a></li>
                            <li><a href="#">Name Three</a></li>
                            <li><a href="#">Four</a></li>
                        </ul>
                    </li>
                </ul>
            </div>

控制器:

ICollection<Names> names = this.obj.GetNames();

1 个答案:

答案 0 :(得分:3)

在这种情况下,我更喜欢使用后面的代码来调用视图包。试试这样的事情

@Html.DropDownList("Action", PathToController.GetUsers())

然后在你想要放置此方法的控制器上

public static List<SelectListItem> GetUsers(){
    List<SelectListItem> ls = new List<SelectListItem>();
    var result = //database call here
    foreach(var temp in result){
        ls.Add(new SelectListItem() { Text = temp.Name, Value = temp.ID });
    }
    return ls;
}