Asp.net Mvc Framework 六 (更多的View传值及显示方式)

我们前面都使用RenderView("Index");这种方式来显示
RenderView的重载:
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView(string viewName);
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView(
string viewName, object viewData);
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView(
string viewName, string masterName);
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView(
string viewName, string masterName, object viewData);
我们常用的当然就是第一种
第二种RenderView(string viewName, object viewData);是在显示view时附加一个ViewData
如:
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView("Index"new
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)
Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)    name 
= "重典",
Asp.net Mvc Framework 六 (更多的View传值及显示方式)    sex 
= true
Asp.net Mvc Framework 六 (更多的View传值及显示方式)}
);
我们就可以在相应的View(即Index.aspx)中调用<%=ViewData["name"]%>来得到它的值

RenderView(string viewName, string masterName);
则是除了Viewname之外还指定了母板页
如果程序写为
Asp.net Mvc Framework 六 (更多的View传值及显示方式)RenderView("index""layoutpage");
则是显示index这个View , 但是母板页使用/Views/Shared/layoutpage.master

最后一个重载是前两者的结合,这里不多说了

更多的View传值方式
前面说了向VIew传值可以用ViewData或者是TempData
这里我们介绍ViewData传值的另一种的方式

与Models绑定
这是我们第一次介绍Models,其实Models就是一个数据模型,比如,用户,人,访问记录等
我们建立一个Person类
Asp.net Mvc Framework 六 (更多的View传值及显示方式)namespace MvcApplication2.Models
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)
Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)    
public class Person
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)    
Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)        
string _name;
Asp.net Mvc Framework 六 (更多的View传值及显示方式)
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)        
public string Name Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)            
get Asp.net Mvc Framework 六 (更多的View传值及显示方式)return _name; }
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)            
set Asp.net Mvc Framework 六 (更多的View传值及显示方式){ _name = value; }
Asp.net Mvc Framework 六 (更多的View传值及显示方式)        }

Asp.net Mvc Framework 六 (更多的View传值及显示方式)        
bool _sex;
Asp.net Mvc Framework 六 (更多的View传值及显示方式)
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)        
public bool Sex Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)            
get Asp.net Mvc Framework 六 (更多的View传值及显示方式)return _sex; }
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)            
set Asp.net Mvc Framework 六 (更多的View传值及显示方式){ _sex = value; }
Asp.net Mvc Framework 六 (更多的View传值及显示方式)        }

Asp.net Mvc Framework 六 (更多的View传值及显示方式)    }

Asp.net Mvc Framework 六 (更多的View传值及显示方式)}
类中有Name与Sex两个属性
我们仍然用Eice的Index这个Action来书写示例
首先我们实例化一个Person并将之传给View
Asp.net Mvc Framework 六 (更多的View传值及显示方式)            Person p = new Person()
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)            
Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)                Name 
= "邹健",
Asp.net Mvc Framework 六 (更多的View传值及显示方式)                Sex 
= true
Asp.net Mvc Framework 六 (更多的View传值及显示方式)            }
;
Asp.net Mvc Framework 六 (更多的View传值及显示方式)            RenderView(
"Index", p);
接下来我们更改View中Eive/Index.aspx.cs
将它的更改如下
Asp.net Mvc Framework 六 (更多的View传值及显示方式)    public partial class Index : ViewPage<Person>
Asp.net Mvc Framework 六 (更多的View传值及显示方式)Asp.net Mvc Framework 六 (更多的View传值及显示方式)    
Asp.net Mvc Framework 六 (更多的View传值及显示方式){
Asp.net Mvc Framework 六 (更多的View传值及显示方式)    }
也就是原来Index是继承ViewPage的而现在继承了ViewPage<Person>这个泛型
接下来我们可以在Index.aspx中写类似以下语句了
Asp.net Mvc Framework 六 (更多的View传值及显示方式)<%=ViewData.Name %>
Asp.net Mvc Framework 六 (更多的View传值及显示方式)
<%=ViewData.Sex %>
当然您也可以不写ViewPage<Person>而还像从前一样继承于ViewPage
那么访问方法就是过去的
Asp.net Mvc Framework 六 (更多的View传值及显示方式)<%=ViewData["Name"%>
Asp.net Mvc Framework 六 (更多的View传值及显示方式)
<%=ViewData["Sex"%>

回首望去MS讲的内容与标题反了...Eat去了...每天都为吃发愁...
Asp.net Mvc Framework 系列
上一篇:SAP Spartacus checkout页面的入口逻辑


下一篇:javascript中在链表中向前(向后)移动n个节点