ASP.NET MVC Dynamic View
刚才StackOverflow看到的,解决了很大的问题
以前写MVC,总是强类型,但是大部分时候前台页面不会只是一个实体类,通常要展示两个、三个甚至四个实体类的展示,通常这个时候,就特别希望通过动态类型引入View中,通过遍历或者直接取出动态类型中的数据
开始的时候我是这样写:
{
return View(new
{
TestString = "This is a test string"
});
}
前台取出的方式是<%: Model.TestString %>
但是会报错,错误可以自己试一下,于是网上搜索了一下,找到了一个比较折中的方法,贴出来看一下
{
public static class DynamicModel
{
public static ExpandoObject ToExpando(this object anonymousObject)
{
IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject);
IDictionary<string, object> expando = new ExpandoObject();
foreach (var item in anonymousDictionary)
expando.Add(item);
return (ExpandoObject)expando;
}
}
}
controller 里面的action可以写成这样:
{
TestString = "This is a test string"
});
前台依旧用原方式,当然,别忘了加上 @model dynamic