gpt4 book ai didi

javascript - 在后续部分 View 加载后使用后退按钮

转载 作者:行者123 更新时间:2023-12-03 09:10:38 25 4
gpt4 key购买 nike

我目前有一种可能非常规的方式直接链接到具有所需部分 View 的父 View 。我的父 View 根据从初始请求中获取的 ViewBag 变量呈现部分 View 。

 public ActionResult Index(Guid clientId, string section)
{
if (!string.IsNullOrEmpty(section))
{
ViewBag.Section = section;
}

return View();
}

查看

<div id="dashboard-container">
@if (ViewBag.Section != null)
{
switch ((string)ViewBag.Section)
{
case "sn-quickview":
@Html.Partial("_MyQuickView")
break;
case "sn-docsfiles":
break;
case "sn-needswork":
@Html.Action("GetNeedsWork", new { clientId = ViewBag.CompanyId})

break;
case "sn-advisorynotes":
@Html.Action("GetAdvisoryNotes", new { companyId = ViewBag.CompanyId })
break;
case "sn-documentedrisks":
break;
case "sn-expirations":
@Html.Action("GetDevicesByExpiration", new { clientId = ViewBag.CompanyId})
break;
case "sn-lastupdated":
break;
case "sn-blankfields":
break;
}
}
else
{
@Html.Partial("_MyQuickView")
}

使用这个小方案,我可以直接链接到索引 View 以及最初加载的所需部分 View 。我遇到的问题是使用后退按钮时。后退按钮所做的只是更改地址栏中的 url 以反射(reflect)先前的部分 View ,但实际上并不显示先前的部分 View 。

例如 localhost:xxx/Index?section=sn-docsfiles
该 url 显示在浏览器中,但之前渲染的部分 View 不会显示。我正在使用 window.history.pushState 将参数化 url 推送到历史记录,以便在渲染这些部分 View 时后退按钮能够工作,但似乎需要一个数据> json类型的参数。

我可以看到,使用 Web api 和可能的 Angular 会相当简单,但使用普通的旧式 mvc 和 ajax 部分则不然。

我的问题是:
有哪些技术可以保留这些先前渲染的部分,以便在单击后退按钮时它们正确显示?

最佳答案

您拥有 MVC 路由返回不同 View 的能力,您选择这样做似乎很奇怪。

如果我不明白你的问题,我很抱歉,但看起来你想要实现的目标已经是 MVC 框架的一部分。您有一个主视图,并且尝试在其中注入(inject)子/部分 View 。

如果这就是您想要做的,那么请查看 @RenderBody() 和 MVC 布局。

关于布局的好文章 - http://www.dotnetcurry.com/ShowArticle.aspx?ID=636

关于javascript - 在后续部分 View 加载后使用后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com