将cshtm中的下拉列表与服务器端数据绑定 [英] Bind drop down list inside cshtm with server side data
本文介绍了将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屋!
查看全文