公共的可以用分部视图
非公共的,我现在想到的办法是定义的复杂视图模型,
public class ProductsListViewModel
{
public IEnumerable<Product> Products { get; set; }
public PagingInfo PagingInfo { get; set; }
public string CurrentCategory { get; set; }
}
还有就是直接用viewbag比如view.productlist,view.newslist
不知道是不是这样做,第一次用MVC
16 个解决方案
#1
你首先要明白,控制器不是用来传输数据的,它是根据路由指向到某个视图,再由视图去加载数据
#2
接着说重点啊
#3
用视图加载数据???
不是说控制器从模型中获取数据,组织以后传入视图中显示么
#4
重点是
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in ViewData.Model) {%>
<%}%>
<%foreach (var a in ViewData.Model2) {%>
<%}%>
....
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in ViewData.Model) {%>
<%}%>
<%foreach (var a in ViewData.Model2) {%>
<%}%>
....
#5
有点不对劲,你这里到底是某个模型数据,有还是有了视图包
#6
是不是应该这样,就是用复杂的视图模型
#7
复杂的和VIewBag的都可以~
我不喜欢用复杂的,原因是多了一个类
喜欢用VIewBag,然后在View中做类型转换接着foreach
我不喜欢用复杂的,原因是多了一个类
喜欢用VIewBag,然后在View中做类型转换接着foreach
#8
Insus.NET刚开始学习ASP.NET MVC时,也差点想不过来。控制器可作为视图的操作(Action),也可以作为服务端的一个方法,函数。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
#9
Insus.NET刚开始学习ASP.NET MVC时,也差点想不过来。控制器可作为视图的操作(Action),也可以作为服务端的一个方法,函数。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
感觉用了这么多action,开发起来会不会很麻烦,而且也没有重用性的(不是公共块)
#10
我也是LZ那么定义。。。没发现啥问题。。。
#11
public class IndexVModel
......
......
#12
我是用多个VIewBag···
#13
公共部分使用分布使用,非公用的,定义一个复杂一点的ViewModel吧。
//ToDo
public class HomeModels{
public IList<Hotxxx>{get;set;}
......
}
#14
门户网首页的版块很多,每块得用上一个action,相同的模版就做一个公共的模块传不同的参数,在后台得到想要的数据,在相应的view中绑定好数据, 然后在首页在相应的位置填上相应的访问视图代码:@Html.action("action","controll",new{})
#15
要麼使用一個viewmodel 裏面可以放多個DataTable list啊 什麼的 反到view中
要麼就用多個viewbag
推薦第一種
要麼就用多個viewbag
推薦第一種
#16
方法多的是
第一种:定义复杂模型
第二种:直接在视图里从BLL处获取数据
第三种:直接将控制器做为对象传向视图,在控制器处有些对象用PUBLIC定义,然后在视图处就可以直接取数据了
第一种:定义复杂模型
第二种:直接在视图里从BLL处获取数据
IBLL.INewsService IBLL = new BLL.NewsService();
foreach (var item in IBLL.LoadEntities(p => p.classCode == 100).Take(10).ToList())
{
}
第三种:直接将控制器做为对象传向视图,在控制器处有些对象用PUBLIC定义,然后在视图处就可以直接取数据了
控制器:
public INewsService _IService;
public ActionResult View()
{
_IService = new BLL.NewsService();
return View(this);
}
视图
@model CHR.Controllers.HomeController
@foreach (var item in Model._IService.LoadEntities(p => p.houseID == 100))
{
}
#1
你首先要明白,控制器不是用来传输数据的,它是根据路由指向到某个视图,再由视图去加载数据
#2
你首先要明白,控制器不是用来传输数据的,它是根据路由指向到某个视图,再由视图去加载数据
接着说重点啊
#3
你首先要明白,控制器不是用来传输数据的,它是根据路由指向到某个视图,再由视图去加载数据
用视图加载数据???
不是说控制器从模型中获取数据,组织以后传入视图中显示么
#4
重点是
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in ViewData.Model) {%>
<%}%>
<%foreach (var a in ViewData.Model2) {%>
<%}%>
....
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in ViewData.Model) {%>
<%}%>
<%foreach (var a in ViewData.Model2) {%>
<%}%>
....
#5
重点是
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in ViewData.Model) {%>
<%}%>
<%foreach (var a in ViewData.Model2) {%>
<%}%>
....
有点不对劲,你这里到底是某个模型数据,有还是有了视图包
#6
重点是
<%@ Import namespace="某个模型数据" %>
<%foreach (var a in 某个模型数据.Model) {%>
<%}%>
<%foreach (var a in 某个模型数据.Model2) {%>
<%}%>
....
有点不对劲,你这里到底是某个模型数据,有还是有了视图包
是不是应该这样,就是用复杂的视图模型
#7
复杂的和VIewBag的都可以~
我不喜欢用复杂的,原因是多了一个类
喜欢用VIewBag,然后在View中做类型转换接着foreach
我不喜欢用复杂的,原因是多了一个类
喜欢用VIewBag,然后在View中做类型转换接着foreach
#8
Insus.NET刚开始学习ASP.NET MVC时,也差点想不过来。控制器可作为视图的操作(Action),也可以作为服务端的一个方法,函数。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
#9
Insus.NET刚开始学习ASP.NET MVC时,也差点想不过来。控制器可作为视图的操作(Action),也可以作为服务端的一个方法,函数。
因此,你可以创建很多个Action,每个Action可处理不同的数据。
感觉用了这么多action,开发起来会不会很麻烦,而且也没有重用性的(不是公共块)
#10
我也是LZ那么定义。。。没发现啥问题。。。
#11
public class IndexVModel
......
......
#12
我是用多个VIewBag···
#13
公共部分使用分布使用,非公用的,定义一个复杂一点的ViewModel吧。
//ToDo
public class HomeModels{
public IList<Hotxxx>{get;set;}
......
}
#14
门户网首页的版块很多,每块得用上一个action,相同的模版就做一个公共的模块传不同的参数,在后台得到想要的数据,在相应的view中绑定好数据, 然后在首页在相应的位置填上相应的访问视图代码:@Html.action("action","controll",new{})
#15
要麼使用一個viewmodel 裏面可以放多個DataTable list啊 什麼的 反到view中
要麼就用多個viewbag
推薦第一種
要麼就用多個viewbag
推薦第一種
#16
方法多的是
第一种:定义复杂模型
第二种:直接在视图里从BLL处获取数据
第三种:直接将控制器做为对象传向视图,在控制器处有些对象用PUBLIC定义,然后在视图处就可以直接取数据了
第一种:定义复杂模型
第二种:直接在视图里从BLL处获取数据
IBLL.INewsService IBLL = new BLL.NewsService();
foreach (var item in IBLL.LoadEntities(p => p.classCode == 100).Take(10).ToList())
{
}
第三种:直接将控制器做为对象传向视图,在控制器处有些对象用PUBLIC定义,然后在视图处就可以直接取数据了
控制器:
public INewsService _IService;
public ActionResult View()
{
_IService = new BLL.NewsService();
return View(this);
}
视图
@model CHR.Controllers.HomeController
@foreach (var item in Model._IService.LoadEntities(p => p.houseID == 100))
{
}