我有一个MVC视图,其中包含大量的部分视图。这些部分视图使用部分请求填充,因此视图本身的控制器不会向它们传递任何数据。如果某个操作在另一个视图中触发,是否有可能在其中一个部分视图中重新加载数据?例如,一个局部视图有一个jqGrid,我想在用户在这个网格中选择一个新行时刷新另一个局部视图中的数据。 有没有这种情况下的代码示例(在C#中),我可以看看我做错了什么?我使用ajax调用来触发一个新的请求,但部分视图中的非视图被刷新,所以我不确定问题是否与路由,控制器有关,或者甚至根本不可能! 谢谢!ASP .NET MVC部分视图和路由
0
A
回答
3
如果您的部分视图操作返回ViewResult,则该响应将包含一个HTML块。但是,Ajax调用不会自动将结果插入到DOM中,因为结果可能是任意数量的格式,并且/或者在DOM更新之前可能需要额外的处理。因此,为了获得刷新的局部视图,您需要将Ajax调用的结果插入DOM树中的正确位置。
jQuery有一个漂亮的load()
方法,它会为你封装这个过程。它将进行Ajax调用,获取结果并替换选定元素的内部HTML。如果您需要以任何方式转换结果,您甚至可以将它自己的函数传递给它,然后将它插入到DOM树中。
附注:jQuery.load()
strips scripts returned in the result。它确实保留它们以在某些场景中执行,但它甚至在其他场景中不执行它们。所以,如果你的部分视图包含脚本,你可以考虑自己更新DOM树。
所有这一切都与您的C#代码无关,该代码在服务器端运行。
但是,通过检查请求是纯HTML还是可以让您的操作变得更加智能,因此结果将直接由浏览器呈现,或者如果是Ajax调用,结果将会是在进入DOM之前由您的脚本处理。该检查使用Request
扩展方法IsAjaxRequest
完成。
相关问题
- 1. asp net mvc部分视图验证
- 2. 部分视图和html格式Asp Mvc
- 3. MVC路由和局部视图
- 4. ASP MVC路由
- 5. ASP MVC路由
- 6. ASP MVC路由
- 7. 在ASP .NET MVC Razor视图
- 8. ASP NET MVC区域的路由/ VB中
- 9. Web Api路由配置ASP-NET MVC
- 10. 关于路由和部分视图的MVC 3的SEO建议
- 11. Java Spring MVC部分视图
- 12. 在Firefox中呈现asp .net mvc部分视图
- 13. 部分视图空页面ASP MVC 3
- 14. 用asp mvc部分视图和jquery过滤和显示数据
- 15. MVC路由与部分类
- 16. .NET MVC Ajax.ActionLink不返回部分视图
- 17. MVC部分视图和Javascript
- 18. ASP .Net MVC路由无控制器和操作名称
- 19. ASP MVC在部分视图中定义部分
- 20. ASP .Net Core + Angular 2路由
- 21. ASP.NET MVC路由从部分视图返回用户到原点
- 22. 使用ajax进行MVC部分视图路由
- 23. MVC 3部分视图的动态路由问题
- 24. Asp.Net中的路由和多视图MVC
- 25. MVC和强类型视图路由?
- 26. ASP.NET MVC视图位置和路由
- 27. MVC路由和网址视图帮手
- 28. Mvc路由和数字视图名称
- 29. ASP MVC 5 - 视图文件夹外的部分视图文件
- 30. 区分web api路由和mvc路由