具有复杂对象的json或asp.net partialview / partialresults

时间:2009-12-21 14:56:10

标签: jquery asp.net-mvc

如果我有一个div或部分控制,并且我有一个链接,我想点击它将刷新div,似乎我可以:

  1. 使用ajax.beginform或ajax.actionlink并返回PartialResult()
  2. 使用jquery发布/获取/ ajax并返回json
  3. 如果我有一个大的复杂对象,我绑定到我的视图,哪个选项更好。看起来像#1,你可以获得csharp代码的静态类型(与json解析相比)。 。应该发挥作用的任何其他关键决策点?是否有任何工具可以将深层嵌套的csharp对象从控制器操作转换为json。

2 个答案:

答案 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是一种如何完成它的方法。