MVC3 里面 __Layout视图布局或母板页怎么使用数据? 布局没有控制器的,那怎么使用数据。
求例子
mvc3怎样在\Views\Shared\_Layout.cshtml页面中绑定数据库数据,貌似没有Controllers要自己新建吗?
直接说方法吧:
1、直接用ViewBag,ViewData。然后再基于这个布局页的其他有Controller的页面进行赋值;(对于这种数据赋值,最好定义一个基类Controller来统一处理)
2、利用Html.Action,发起子请求;
3、利用JS动态请求数据(原理上,和子请求比较类似)
你好,【对于这种数据赋值,最好定义一个基类Controller来统一处理】,这个可以给个具体的例子吗?
比如说 新建了个 BaseController,其他的Controller 继承BaseController,那在 BaseController 里面要怎么写 _Layout.cshtml 页才能获取数据呢?
@white-poplar: Layout很共享页面的ViewData这些东西。所以只需要把数据放在页面的ViewData,ViewBag中。
另外,你这应该是页面独有的数据,没有共性,就不要放在BaseController中。一般BaseController中就放一些用户信息之类的共通数据。
想怎么使用数据就怎么使用。
1、小数据SESSION,APPLICATION之类的。
2、AJAX加载
3、MODEL
1、Session、Application数据,Cookie数据,静态数据,这个是Web系统都具备的。
2、通过ViewBag、ViewData传输数据
3、通过Model传输数据
控制器里的代码拿到模板页里。这样速度更快哦,亲。有所要做的就是在试图的顶部加上
@
{
List<xx> entity_list=xxxxxxx;此处省略1行
}
<div>
@if(entity_list!=null && entity_list.Count>0 )
{
//想怎么做就怎么做
}
</div>
--------------------------------------------------------------------当然这是比较死板的写法,代码很冗余。
所以非必要时刻,搞个js吧。专门访问控制器,取得数据,JS绑定。妥妥的。