0

背景:我正在阅读 Steven Sanderson 和 Adam Freeman 的“ASP.Net MVC 3 Framework...”。

假设你有

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

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

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

@Html.Action(...);

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

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

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

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

再一次,我在处理来自的数据的上下文中询问ResultView's,而不是手动处理 JSON 数据。


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

4

1 回答 1

0

回答我自己的问题...

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

Ajax 调用是另一回事——整个区域被清除,然后将单个操作调用的结果放入。Ajax 调用的初始内容和结果不一定要相关。例如——首先您可以显示大海的图片和海滩的图片,并且在每次 Ajax 调用时,您都可以显示两张图片的当前温度(假设您的后一个动作/视图渲染温度,而不是温度+图片)。

为了保留我在问题中给自己的示例——更新音乐列表和标签列表——必须在一个 Ajax 操作调用中创建带有音乐列表和标签列表的视图。

于 2012-11-18T20:14:33.980 回答