繁体   English   中英

部分视图上的ASP.net Razor刷新返回首页

[英]ASP.net Razor Refresh on partial view returns to home page

我正在使用ajax来调用控制器以呈现部分视图。 每次我按下刷新按钮或后退按钮时,它都会返回到我的主页/索引,而不是显示的部分视图页面。 有人知道解决方案吗?

有几种处理方法,一种是让部分视图向URL添加哈希或查询字符串,并在JavaScript或控制器中进行处理以了解如何获取哈希/查询字符串并在页面上加载正确的部分视图重装。

但是,如果需要在重新加载前跟踪他们的操作,则可以使用保留其位置服务器端的内容或缓存客户端的内容。 有关缓存的提示,请查看thisthis

我发现两者都能很好地工作,但是使用哈希或查询字符串将显示在url中,而不总是显示您要使用的内容。

编辑

我不确定您在客户端使用的是什么框架(knockout.js,jQuery等),但是其中许多框架使此操作变得更容易,您可以创建一个加载时视图的简单缓存,添加所需的内容根据您需要的顺序访问缓存视图,并在需要时将其注入div或其他内容。

这里的问题是,局部视图在某种程度上就像是代码片段,服务器知道如何将其放入,客户端知道如何进行查看,但是浏览器不会将它们视为浏览器历史记录中的条目,因此您必须告诉浏览器如何确保按需要重新加载数据。

您可能会看到的另一种选择是将它们注入浏览器历史记录中,但是您仍然需要服务器分配正确负载的一种方法。 我在一个家伙为单页Web应用程序加载部分的实现中发现了这一点 ,这似乎是一个不错的选择。 但是同样,您需要知道如何在重新加载时收集这些数据。 但是要回答评论,浏览器并没有一种神奇的方式可以知道您使用ajax调用了什么。 如果您希望浏览器自动了解它,请尝试使用@Html.Partial(string partialViewName) or @Html.RenderPartial(string partialViewName)参见MSDN

您还可以考虑在视图数据,tempdata,viewbag或会话数据中放置一些内容 ,以查看本文中的区别,以了解是否可以满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM