有没有办法从控制器中刷新几个局部视图?(返回视图())
谢谢,
Update1:例如,我的屏幕内容分为两部分,左边是客户列表,右边是详细信息客户,左边是在列表中选择的客户的详细信息。如果我创建了一个新客户,当我保存时,我会刷新列表(左边部分)并查看详细信息(右边部分)
发布于 2010-09-24 22:08:01
克里斯
我想要做到这一点的唯一方法就是在要刷新的主“视图”中嵌入多个局部视图。然后,这些将在相同的周期中被刷新。或者,您可以在主视图中嵌入自定义html助手,以便在刷新视图时运行适当的代码。
至于从单个操作中获得多个视图,我认为这既不是一个好主意,也不是一种可能。
当然,规则是要打破的:)
发布于 2010-09-24 23:34:53
我不认为有任何自动的方法来做到这一点,但你可以使用一些约定和:
创建一个自定义视图结果,该结果接受多个部分视图结果,例如,在执行自定义视图结果时,调用每个MultiplePartialViewResult
相匹配的相应元素
对于最后一步,您可以使用约定。一个简单的方法是(如果每个局部视图只有一个实例)把要更新的目标html元素的id放在第二步中用来包装它的div/容器中。
发布于 2010-09-24 23:39:36
基于您所说的,我认为使用javascript和ajax从服务器刷新将是最好的。
您可以使用Html.RenderPartialAction来实现DRY,方法是将其放到页面上,然后使用ajax和javascript加载它。
如果您使用的是jQuery,那么下面这样的代码将会起作用:
jQuery("#divToReload1").load('Url/To/PartialAction')...
jQuery("#divToReload2").load('Url/To/PartialAction')...只要把所有这些都放在一个函数中,你就可以一次重新加载所有的偏导函数。
您可以通过使用data参数发送数据,并捕获回调函数来执行您希望的操作。
https://stackoverflow.com/questions/3787315
复制相似问题