gpt4 book ai didi

javascript - 忽略@RenderBody()

转载 作者:行者123 更新时间:2023-12-02 15:00:35 28 4
gpt4 key购买 nike

我不确定我是否正确地处理了这个问题。

我有一个 ASP.NET MVC Web 应用程序。有 4 个主要“页面”通过单击菜单选项,可以选择一个页面,并将该页面选项存储在本地存储中。

现在,如果我刷新页面,我就编写了一个简单的 JS 脚本来维护当前查看的页面。

但是,我注意到 @RenderBody() 在我的 JS 脚本之前被调用,因此主页在显示所选页面之前会非常短暂地出现。

所以,在 sudo 代码中我想要这个:

<div id="mainContent" style="height:423px; ">
if (pageselected!='HOME')
{
//call my JS script to load a partial view
}
else
{
//else load home page
@RenderBody()
}
</div>

我的方法正确吗?我该如何按照我所描述的方式解决这个问题?

最佳答案

让我们在这里做一个重要的区分。当服务器渲染 View 时,RenderBody 在服务器端运行。 js 在客户端上运行,服务器完成渲染并将页面发送回浏览器后。所以RenderBody总是先于js运行,并且没有办法改变这一点。因此,您编写的伪代码几乎不可能实现。

也就是说,总有一些选项可以通过其他方式提供您所需的功能。几个选项包括:

  1. 决定在服务器端渲染什么。例如,将此页面选择存储在 session 中会产生很大的开销吗?这还会给您带来额外的好处,即不发送不会向用户显示的 html 标记,从而节省一些流量和一些浏览器渲染时间。

  2. 默认隐藏标记中的所有内容,就像执行 display: none 一样简单,在您的 js 中决定显示什么并用一行 js/jquery 来显示它。也许在您当前的代码中更容易实现一些。

关于javascript - 忽略@RenderBody(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35454797/

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