MVC 3:通过JavaScript在部分视图和视图之间进行通信
MVC 3: Communicating between partial view and view via JavaScript
我有一个列出用户的页面(List.vbhtml),每个用户都有一个"编辑"链接。编辑链接发出Ajax请求:
@Ajax.ActionLink("Edit", "Edit", "Player", New With {.id = currentItem.PlayerId}, New AjaxOptions() with { .UpdateTargetId="edit"})
我的控制器中的Edit方法返回一个包含表单的部分视图(_Edit)。表单提交后,我想隐藏编辑表单(没问题),然后重新加载用户列表这就是我正在努力解决的问题
如何让父视图(List.vbhtml)知道我应该重新加载列表(这将使用Ajax Get请求来完成)?
我不能从"编辑局部视图"中执行此操作,因为"编辑局部"视图不应该知道"列表"视图,而只能知道另一种情况(列表视图知道局部视图)。
我目前的解决方案是在_edit.vbhtml中编辑完成时引发一个自定义事件,并在List.vbhtml:中捕获它
_Edit.vbhtml:
//let anyone listening know the edit is complete
$(document).trigger('PersonEditComplete');
List.vbhtml
//when player edit is complete, reload the player list
$(document).bind('PersonEditComplete', function () {
Player.List.Reload();
});
感谢
您可以使用jQuery.ajaxComplete()事件处理程序。您必须检查XHR方法是GET还是POST。Get将在加载用户编辑表单后进行,POST将在submiting后进行。
所以,如果ajaxComplete在POST调用后触发,那么您应该通过Ajax刷新用户列表。
相关文章:
- 根据某些条件在视图之间切换
- 如何在rapaidjs中的视图之间共享数据
- angularJS:如何打破模型和视图之间的链接
- 在同一控制器上的视图之间切换
- 在主干中的视图之间传递值
- 骨干事件触发不同视图之间的协调
- 在两个视图之间来回转换
- titanium:窗口和视图之间的区别
- 在主干.js视图之间传递消息
- 如何在 dialog() 模式弹出窗口中的部分视图之间保留字段数据
- 在不同的视图之间共享相同的操作/功能
- 在视图之间移动时,主干会丢失下拉事件
- AngularJS:使用不同的控制器保持不同视图之间的视图状态
- 角度如何在搜索和结果视图之间切换并传递数据
- 在 AngularJS 中的视图之间保留 GoogleMaps 映射对象
- 在 Ionic 上的视图之间共享数据
- SugarCRM 7-如何在视图之间共享代码
- SAPUI5:如何在两个视图之间筛选列表
- Titanium Mobile固定背景视图之间的图像
- 如何在AngularJS中的视图之间移动$routeProvider时阻止$destroy-of-scope