如果我有一个div或部分控制,并且我有一个链接,我想点击它将刷新div,似乎我可以:
如果我有一个大的复杂对象,我绑定到我的视图,哪个选项更好。看起来像#1,你可以获得csharp代码的静态类型(与json解析相比)。 。应该发挥作用的任何其他关键决策点?是否有任何工具可以将深层嵌套的csharp对象从控制器操作转换为json。
答案 0 :(得分:1)
有很多选项可用于管理控制器的非常复杂的.NET对象。在我看来,我认为在RIA应用程序中有很多复杂的控制,它应该不可能呈现它的视图或部分视图,因为你必须动态创建像div div的div这样的html来显示一个像gridview这样的复杂控件。
因此,使用控制器的JSON结果进行渲染应该是处理它的最佳方法。因为您可以轻松控制任何片段代码并将数据绑定到复杂控件。
例如,ASP.NET Ajax Library Beta的数据视图控件和Ajax模板功能使您能够将数据绑定到HTML文档中的任何模板,如下面的模板。
<div id="CustomerView" class="sys-template">
<ul>
<li>{{ContactName}} - {{Country}}</li>
</ul>
</div>
有关详细信息,请查看WALKTHROUGH Using a DataView with local data。
答案 1 :(得分:0)
你可能要控制的一件事是可能的应用信息/错误消息,很难说明纯文本/ html会发生什么,使用JSON你有更多的控制权,你可以使用如下结构:
{
SUCCESS: true,
DATA: "",
ERRORS: []
}
SUCCESS告诉您状态“OK / info / exceptions”。
DATA是你放置HTML,对象的地方..你命名它,这取决于SUCCESS,如果它是TRUE Data保存要替换的html,如果它是FALSE可能数据是空的。
错误包含您希望用户在请求出现问题时查看的例外消息或反馈。
这里棘手的部分是渲染部分为字符串并解析为JSON,here是一种如何完成它的方法。