Asp.net mvc基础(二)Controller给View传递数据的方式
1.ViewData传值
步骤一:通过在控制器中以键值对的形式进行赋值
ViewData["键"] = 值
赋值:
调用:
2.ViewBag传值
ViewBag是dynamic类型的参数,是对ViewData一个动态类型封装。
比如:使用ViewData["name"]="张三";进行赋值,在view中可以使用ViewBag.name进行调用
或者ViewBag.name = "张三";进行赋值,在view中使用ViewData["name"]进行调用
赋值:
调用:
3.Model类进行传值
弱类型模型传值
首先定义Model类,在控制器的方法中进行赋值,如下:
在View中直接使用@Model.Id等形式进行调用
注意:Model首字母一定要大写
强类型模型传值
强类型模型传值唯一不同的是,在View中通过"@model类型"指定类型。那么在调用的时候就会有提示出现该模型类的属性。
4.Action的三种类型的参数
Model类的参数
普通参数
在第一次请求并没有传递参数的时候,会发生报错,报错的原因是int类型必须赋值
解决方法:将int类型的参数变成可空类型的参数
请求参数正确做法如下:
FormCollection类型参数(只能post请求)
前端
后端:
注意:Action方法是不能重载的,如下图所示
如果想要重载的话,就需要将两个方法名相同的Action设置为不同的请求方式,如下所示:
提交文件
请求方式:post请求,文件参数类型:HttpPostedFileBase
前端一定要使用:enctype="multipart/form-data"的形式,不然会报错
前端:
后端: