.Net MVC控制器向View传值的三种方法讲解
1.提供视图模型对象
你能把一个对象作为View方法的参数传递给视图.
1 | public ViewResult Index() |
3 | DateTime date = DateTime.Now; |
然后我们在视图中使用Razor的Model关键字来访问这个对象
2 | ViewBag.Title = "Index" ; |
5 | The day is : @(((DateTime)Model).DayOfWeek) |
或者是
3 | ViewBag.Title = "Index" ; |
6 | The day is : @Model.DayOfWeek |
2.使用ViewBag(视图包)传递数据
View Bag 允许在一个动态的对象上定义任意属性,并在视图中访问它.
这个动态的对象可以通过Controller.ViewBag属性
01 | public ViewResult Index() |
03 | ViewBag.Message = "Hello" ; |
04 | ViewBag.Date = DateTime.Now; |
09 | ViewBag.Title = "Index" ; |
12 | The day is : @ViewBag.Date.DayOfWeek |
14 | The message is : @ViewBag.Message |
3. 使用View Data传递数据
在MVC3.0之前,主要是通过这种方式传递数据,它是通过用 ViewDataDictionary类实现的,而不是动态的对象.ViewDataDictionary类是类似标准"键/值"集合,并通过
Controller类的ViewData属性进行访问的.这个方法,在视图中需要对对象进行转换.
02 | public ViewResult Index() |
04 | ViewData[ "Message" ] = "Hello" ; |
05 | ViewData[ "Date" ] = DateTime.Now; |
11 | ViewBag.Title = "Index" ; |
14 | The day is : @(((DateTime)ViewData[ "Date" ]).DayOfWeek) |
16 | The message is : @ViewData[ "Message" ] |