有没有办法从控制器刷新几个局部视图? (返回View())
谢谢,
UPDATE1: 例如,我的屏幕的内容pârt分为2部分,左边是客户列表,右边是客户详细信息,客户详细信息在左侧列表中选中。如果我创建一个新客户,当我保存时,我会让列表刷新(左侧部分)并查看详细信息(右侧部分)
答案 0 :(得分:0)
克里斯,
我能想到的唯一方法就是在主要的“视图”中嵌入多个部分视图以进行刷新。然后,这些将在同一周期中刷新。或者,您可以在主视图中嵌入自定义html帮助程序,在刷新视图时运行approprite代码。
对于单一动作的多个视图,我认为这不是一个好主意或以任何可能的方式。
当然,规则有待破解:)
答案 1 :(得分:0)
我认为没有任何自动方法可以做到这一点,但你可以使用一些约定和:
对于最后一步,您可以使用约定。一个简单的例子就是(如果每个局部视图只有一个实例)将目标html元素的id放在你用来在第二步中包装它的div /容器中更新。
答案 2 :(得分:0)
根据你所说的,我认为使用javascript和ajax从服务器刷新是最好的。
你可以使用Html.RenderPartialAction将它放在页面上来实现DRY,然后使用ajax和javascript加载它。
如果你使用的是jQuery,那么这样的东西就可以了:
jQuery("#divToReload1").load('Url/To/PartialAction')...
jQuery("#divToReload2").load('Url/To/PartialAction')...
只需将所有内容放在一个函数中,然后立即重新加载所有部分内容。
您可以使用data参数发送数据,并根据需要捕获回调函数。