ExpandoObject
在 MVC 3 的时候 Controller 可以通过 ViewBag 将数据传送到 View。
如下就是通过 ViewBag 设置页面标题:
public ActionResult Index()
{
ViewBag.Title = "Index";
return View();
}
<head>
<title>@ViewBag.Title</title>
</head>
ViewBag 就是一个 dynamic 的应用,而有些人可能会感觉很奇怪,就算是 dynamic 也不能存取一个不存在的 property,为什么 ViewBag 可以动态添加任何一个 property 。
因为 ViewBag 的实际类型是 ExpandoObject,这个类型可以动态产生 property,所以才会有 ViewBag 这样的特性。
using System.Dynamic;
dynamic model = new ExpandoObject();
model.Title = "Index";
model.Time = DateTime.Now;