首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新多个局部视图

刷新多个局部视图
EN

Stack Overflow用户
提问于 2010-09-24 21:04:46
回答 3查看 1K关注 0票数 0

有没有办法从控制器中刷新几个局部视图?(返回视图())

谢谢,

Update1:例如,我的屏幕内容分为两部分,左边是客户列表,右边是详细信息客户,左边是在列表中选择的客户的详细信息。如果我创建了一个新客户,当我保存时,我会刷新列表(左边部分)并查看详细信息(右边部分)

EN

回答 3

Stack Overflow用户

发布于 2010-09-24 22:08:01

克里斯

我想要做到这一点的唯一方法就是在要刷新的主“视图”中嵌入多个局部视图。然后,这些将在相同的周期中被刷新。或者,您可以在主视图中嵌入自定义html助手,以便在刷新视图时运行适当的代码。

至于从单个操作中获得多个视图,我认为这既不是一个好主意,也不是一种可能。

当然,规则是要打破的:)

票数 0
EN

Stack Overflow用户

发布于 2010-09-24 23:34:53

我不认为有任何自动的方法来做到这一点,但你可以使用一些约定和:

创建一个自定义视图结果,该结果接受多个部分视图结果,例如,在执行自定义视图结果时,调用每个MultiplePartialViewResult

  • In
  • 提供的每个视图的执行方法。确保将每个容器包装在div或其他容器中,以便客户端脚本
  • 在接收到客户端脚本中AJAX调用的响应时,从每个容器中获取值,并将其替换为与最初呈现的部分视图

相匹配的相应元素

对于最后一步,您可以使用约定。一个简单的方法是(如果每个局部视图只有一个实例)把要更新的目标html元素的id放在第二步中用来包装它的div/容器中。

票数 0
EN

Stack Overflow用户

发布于 2010-09-24 23:39:36

基于您所说的,我认为使用javascript和ajax从服务器刷新将是最好的。

您可以使用Html.RenderPartialAction来实现DRY,方法是将其放到页面上,然后使用ajax和javascript加载它。

如果您使用的是jQuery,那么下面这样的代码将会起作用:

代码语言:javascript
复制
jQuery("#divToReload1").load('Url/To/PartialAction')...
jQuery("#divToReload2").load('Url/To/PartialAction')...

只要把所有这些都放在一个函数中,你就可以一次重新加载所有的偏导函数。

您可以通过使用data参数发送数据,并捕获回调函数来执行您希望的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3787315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档