ASP.NET MVC 传值方式
使用ASP.NET MVC做开发时,经常需要在页面(View)和控制器(Controller)之间传递数据,那么都有哪些数据传递的方式呢?
1.首先对于View向Controller中传值共列举了以下几种方式:
2.对于Controller向View中传值则列举了以下几种方式:
1.View向Controller中传递数据的方式
QueryString
视图View中代码:
ViewBag.User1=@base.ViewBag.User1
ViewData.User2=@base.ViewData["User2"]
TempData.User3=@base.TempData["User3"]
Session.User4=@HttpContext.Current.Session["User4"]
//接受Object类型数据
model.User5=@Model
控制器Controller中代码:
base.ViewBag.User1 = "张三";
base.ViewData["User2"] = "李四";
base.TempData["User3"] = "王五";
base.HttpContext.Session["User4"] = "赵六";
//特殊的objeck类型 object model = "Richard"; //需要将此名称通过view()传到视图那里 return View(model);
效果如图:

看图可知:
当一个视图方法调用另一个视图方法的时候,上图的部分调用会失效
1.ViewBag和ViewData:如果指定的key是一样的,后者会覆盖前者
2.TempData和Session传值,跳转到其他的方法后,任然可以获取到值,其他的就不可以,--TempData其实就是通过Session来实现的
控制器存值:TempData["name"]="蔡徐坤" 视图取值:@TempData["name"]
3.model传值不要把数据类型定义成一个string类型,因为有重载支持,返回指定的视图类型