MVC分工

Model : 模型(实体)

View :视图

Controller : 控制器

controller给view传值方式及拓展

 

Controller给view传值的方式

1.可以通过viewdata["属性名"]

2.可以通过viewbag.属性名

3.使用tempdata传值

4.可以通过实体来传值

(注:在view中,实体分为弱实体和强实体,为了系统的健壮性,我们一般使用强实体来传值)

他们的区别:

controller给view传值方式及拓展

从上图就可以看出来,viewdata和viewbag是相通的,其实viewbag本质上就是viewdata,但是他们的类型不一样,一个是动态类型(dynamic),一个的字典类型(键值对类型)

TempData保存的数据是存储在session中,controller每次请求时都是从session中提取到tempdata()中,然后清楚session。也就是tempdata是一次性的,每次访问完之后都会清除。

viewdata和viewbag如何调用:

controller端:

controller给view传值方式及拓展

view端:

controller给view传值方式及拓展

 

view代码格式

Razor语法:

1. @后边的都是C#语法

2. @直接写变量,就会在界面输出变量

3. @:后边是HTML代码

<text>里边的内容不会加入<text>标签

4.不想输出HTMLencode就用@html.Row开头

5.一个对象的属性值如果是false就不输出这个属性,如果是true就输出

 

拓展

dynamic动态类型

优点:灵活

缺点:性能比较低,而且编译的时候不容发现错误

 

ExpandObject动态类型

实例化方法:dynamic test = new System.Dynamic.ExpandObject();

 

var类型,编译器会把你定义的变量编译成合适的类型,也可以用于创建临时对象

例如:var test =new {name=“Eric”,age=“12”}

注意:此方法创建的对象,属性值只能取值,不能赋值。

 

相关文章: