Asp.net mvc基础(二)Controller给View传递数据的方式

1.ViewData传值

步骤一:通过在控制器中以键值对的形式进行赋值

ViewData["键"] = 值

赋值:

Asp.net mvc基础(二)Controller给View传递数据的方式

调用:

Asp.net mvc基础(二)Controller给View传递数据的方式

2.ViewBag传值

ViewBag是dynamic类型的参数,是对ViewData一个动态类型封装。

比如:使用ViewData["name"]="张三";进行赋值,在view中可以使用ViewBag.name进行调用

或者ViewBag.name = "张三";进行赋值,在view中使用ViewData["name"]进行调用

赋值:

Asp.net mvc基础(二)Controller给View传递数据的方式

调用:

Asp.net mvc基础(二)Controller给View传递数据的方式

3.Model类进行传值

弱类型模型传值

首先定义Model类,在控制器的方法中进行赋值,如下:

Asp.net mvc基础(二)Controller给View传递数据的方式

在View中直接使用@Model.Id等形式进行调用

注意:Model首字母一定要大写

Asp.net mvc基础(二)Controller给View传递数据的方式

强类型模型传值

强类型模型传值唯一不同的是,在View中通过"@model类型"指定类型。那么在调用的时候就会有提示出现该模型类的属性。

Asp.net mvc基础(二)Controller给View传递数据的方式

4.Action的三种类型的参数

Model类的参数

Asp.net mvc基础(二)Controller给View传递数据的方式

普通参数

在第一次请求并没有传递参数的时候,会发生报错,报错的原因是int类型必须赋值

Asp.net mvc基础(二)Controller给View传递数据的方式

解决方法:将int类型的参数变成可空类型的参数

Asp.net mvc基础(二)Controller给View传递数据的方式

请求参数正确做法如下:

Asp.net mvc基础(二)Controller给View传递数据的方式

FormCollection类型参数(只能post请求)

前端

Asp.net mvc基础(二)Controller给View传递数据的方式

后端:

Asp.net mvc基础(二)Controller给View传递数据的方式

 

注意:Action方法是不能重载的,如下图所示

Asp.net mvc基础(二)Controller给View传递数据的方式

如果想要重载的话,就需要将两个方法名相同的Action设置为不同的请求方式,如下所示:

Asp.net mvc基础(二)Controller给View传递数据的方式

提交文件

请求方式:post请求,文件参数类型:HttpPostedFileBase

前端一定要使用:enctype="multipart/form-data"的形式,不然会报错

前端:

Asp.net mvc基础(二)Controller给View传递数据的方式

后端:

Asp.net mvc基础(二)Controller给View传递数据的方式

 

 

 

 

 

 

 

 

上一篇:MVC3中 ViewBag、ViewData和TempData的使用和区别


下一篇:ViewData,ViewBag,TempData