在开发PageAdmin Cms新版本时候,模板中标签调用用到了匿名对象,类似
@foreach (var item in Html.InfoDataList(new { ColumnId = 1})) {<div class="col-xs-12 col-sm-6 col-md-4"> <div class="info-box"> <span class="name"><a href="@url">@item.Title</a></span> </div> </div> </div> </div> }
使用中发现匿名对象无法传在不同程序集中传递,最后经过各种研究,可以使用下面办法解决:
接收的项目文件中先把匿名对象转为json字符串,然后再传递到下一个程序集,下一个程序集接收到后就json反系列话为匿名对象
有人会问干嘛不事先弄个model?因为匿名对象中每个属性都不确定,
那为什么不用字典呢?对于前端人员来说,匿名对象更方便使用,字典什么的初始化对于前端来说太别扭。