实用干货!ASP.Net 控制器向View传值的三种方法.Net/ASP开发工程师
昨天跟大家说了View中的强类型页面和@model,今天就来和大家深入的说一下控制器向View中传值的三种方法。
1.提供视图模型对象
你能把一个对象作为View方法的参数传递给视图
例如:
pubilc ActionResult Index()
{
DateTime date=DateTime.Now;
return View(date);
}
然后我们就可以在视图中用Razor的Model关键字来访问这个对象
@{
ViewBag.Title="Index";
}iewBag.Title="Index";
<h2>Index<h2>
The day is: @(((DateTime)Model).DayofWeek)
或者是
@model DateTime
@{
ViewBag.Title="Index";
}
<h2>Index<h2>
The day is:@Model.DayofWeek
2使用ViewBag(视图包)传递数据
ViewBag 语序在一个动态的对象上定义任意属性,并在视图中访问它,这个动态的Controller.ViewBag属性访问它.
public ActionResult Index()
{
ViewBag.Message="Hello";
ViewBag.Date=DateTime.Now;
return View;
}
@{
ViewBag.Title="Index";
}
<h>Index</h>
The day is:@ViewBag.Dta.DayofWeek
<p />
The message is:@ViewBag.Message
3.使用View Date传递数据
在MVC3.0之前,主要都是通过这种方式传递数据,他是通过用ViewDataDictionary类实现的,而不是动态对象.ViewDataDictiongary类是类似标准"键/值"集合,并通过Controller类的ViewData属性进行访问的,这个方法,在视图中需要对对象进行转换。
控制器中:public ActionResult Index()
{
ViewData["Message"]="Hello";
ViewData["Date"]=DateTime.Now;
return View();
}
视图中
@{
ViewBag.Title="Index";
}
<h2>Index<h2>
The day is :@(((DateTime)ViewData["Date"]).DayofWeek)
<p />
The message is:@ViewData["Message"]


1914篇文章