Asp.net mvc 4 将cshtm内的下拉列表与服务器端数据绑定
我有一个用户列表,希望在顶部的导航栏上绑定它,这在很多页面上都是可见的,我如何绑定它,我不想在每个文件上添加代码,mvc4中是否有为每个视图调用的方法 我的看法是:Asp.net mvc 4 将cshtm内的下拉列表与服务器端数据绑定,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我有一个用户列表,希望在顶部的导航栏上绑定它,这在很多页面上都是可见的,我如何绑定它,我不想在每个文件上添加代码,mvc4中是否有为每个视图调用的方法 我的看法是: <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="dropdown">
<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();
ICollection name=this.obj.GetNames();
在这种情况下,我更喜欢使用代码隐藏调用查看包。试试这样的
@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;
}
公共静态列表GetUsers(){
列表ls=新列表();
var result=//在此处调用数据库
foreach(结果中的var temp){
添加(新的SelectListItem(){Text=temp.Name,Value=temp.ID});
}
返回ls;
}
在这种情况下,我更喜欢使用代码隐藏调用查看包。试试这样的
@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;
}
公共静态列表GetUsers(){
列表ls=新列表();
var result=//在此处调用数据库
foreach(结果中的var temp){
添加(新的SelectListItem(){Text=temp.Name,Value=temp.ID});
}
返回ls;
}
在这种情况下,我更喜欢使用代码隐藏调用查看包。试试这样的
@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;
}
公共静态列表GetUsers(){
列表ls=新列表();
var result=//在此处调用数据库
foreach(结果中的var temp){
添加(新的SelectListItem(){Text=temp.Name,Value=temp.ID});
}
返回ls;
}
在这种情况下,我更喜欢使用代码隐藏调用查看包。试试这样的
@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;
}
公共静态列表GetUsers(){
列表ls=新列表();
var result=//在此处调用数据库
foreach(结果中的var temp){
添加(新的SelectListItem(){Text=temp.Name,Value=temp.ID});
}
返回ls;
}
您可以在布局中创建此项,并使用ViewBag或ViewData进行填充。一种方法是实现BaseController,在contstructor中填充ViewBag/ViewData,然后从该基本控制器继承每个控制器。该列表将充满我尝试在basecontroller中添加此项并使用viewbag填充的所有项目,但用户在cookies中添加此项后始终为空:(您可以在布局中创建此项,并使用ViewBag或ViewData进行填充。一种方法可以是实现BaseController,在Constructor中填充ViewBag/ViewData,然后从该基础控制器继承每个控制器。在我尝试在BaseController中添加此项并使用ViewBag进行填充的每个位置,列表都将充满项目,但用户始终为n。)将其添加到cookies中后:(您可以在布局中创建此项,并使用ViewBag或ViewData进行填充。一种方法可以是实现BaseController,在Constructor中填充ViewBag/ViewData,然后从该基础控制器继承每个控制器。在我尝试在BaseController中添加此项并使用ViewBag进行填充的每个位置,列表都将充满项目,但用户始终为n。)将其添加到cookies中后:(您可以在布局中创建此项,并使用ViewBag或ViewData进行填充。一种方法可以是实现BaseController,在Constructor中填充ViewBag/ViewData,然后从该基础控制器继承每个控制器。在我尝试在BaseController中添加此项并使用ViewBag进行填充的每个位置,列表都将充满项目,但用户始终为n。)将其添加到cookies中后:(