ASP.Net MVC中Ajax可更新区域的限制是什么?

时间:2012-11-17 16:17:31

标签: ajax asp.net-mvc-3

背景:我正在阅读史蒂文桑德森和亚当弗里曼的“ASP.Net MVC 3框架......”。

假设你有

<div id="ajax_update">
  ...
</div>

这部分应该通过Ajax调用来更新。我的问题是,如果您不考虑手动处理某些XML / JSON数据并依赖ResultView作为输出,那么您可以在那里设置限制/要求。

在我提到的那本书中,有一个单一的条目:

@Html.Action(...);

因此,当触发Ajax方法时,将调用此Html.Action以获取要显示的数据。但是,如果我将从两个部分视图构建该区域,如下所示:

<div id="ajax_update">
  @Html.Action("List1");
  @Html.Action("List2");
</div>

如果我想从三个部分视图构建它,如果操作来自不同的控制器会怎么样?如果...... - 那么简而言之,Ajax可更新区域的限制是什么?可以吗,不可以吗?

或者它可能非常直接 - 它是否必须是单个操作(在可更新区域中)完全匹配Ajax调用的操作?

我再一次询问处理ResultView's数据的情况,而不是手动处理JSON数据。


对于那些喜欢具体例子的人 - 你有一个音乐列表 - 它有动作/视图 - 和标签列表(用作过滤器) - 还有动作/视图。每次点击标签都应更新音乐列表和标签列表 - 因此可更新区域包含来自两个视图的数据。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题......

Ajax可更新区域的初始内容是您想要的任何内容,这里的Ajax完全不相关。

Ajax调用是另一个故事 - 整个区域被消灭,然后来自单一动作调用的结果。最初的内容和Ajax调用的结果无论如何都不必相关。例如 - 首先你可以显示海滩的海图 AND 图片,并且在每个Ajax调用中你可以显示两张图片的当前温度 INSTEAD (假设你的后一个动作/视图呈现温度,而不是温度+图片)。

为了保留我在问题中给出的示例 - 更新音乐列表和标签列表 - 必须在一个Ajax动作调用中创建包含音乐列表和标签列表的视图。