ASP.NET MVC Dynamic View

刚才StackOverflow看到的,解决了很大的问题

以前写MVC,总是强类型,但是大部分时候前台页面不会只是一个实体类,通常要展示两个、三个甚至四个实体类的展示,通常这个时候,就特别希望通过动态类型引入View中,通过遍历或者直接取出动态类型中的数据

开始的时候我是这样写:

public ActionResult UsingDynamic()  

{
  return View(new
  {
    TestString = "This is a test string"
  });
}

  前台取出的方式是<%: Model.TestString %>

但是会报错,错误可以自己试一下,于是网上搜索了一下,找到了一个比较折中的方法,贴出来看一下

namespace SCZQ.Main.Web.Models 

{
    public static class DynamicModel
    {
        public static ExpandoObject ToExpando(this object anonymousObject)
        {
            IDictionary<stringobject> anonymousDictionary = new RouteValueDictionary(anonymousObject);
            IDictionary<stringobject> expando = new ExpandoObject();
            foreach (var item in anonymousDictionary)
                expando.Add(item);
            return (ExpandoObject)expando;
        }
    }
}

controller 里面的action可以写成这样:  

DynamicModel.ToExpando(new 

  {

    TestString = "This is a test string"
  });

 前台依旧用原方式,当然,别忘了加上 @model dynamic

posted on 2012-06-26 17:44  小二黑  阅读(863)  评论(0编辑  收藏  举报

导航