将cshtm中的下拉列表与服务器端数据绑定 [英] Bind drop down list inside cshtm with server side data

查看:55
本文介绍了将cshtm中的下拉列表与服务器端数据绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have users list and want to bind that on top navigation bar, this will always visible for many pages, how i can bind it, i don't want to add code on each file, is there any method in mvc4 that is called for each view?

我的观点:

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

推荐答案

在这种情况下,我更喜欢在调用view bag的背后使用代码.尝试这样的事情

In situations like this I prefer to use a code behind call to the view bag. try something like this

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

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

then on the controller where you want to put this method

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

这篇关于将cshtm中的下拉列表与服务器端数据绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆