Javascript 忽略@RenderBody()

Javascript 忽略@RenderBody(),javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我不确定我是否正确处理了这个问题 我有一个asp.net mvc web应用程序。 共有4个主要“页面” 通过单击菜单选项,一个页面被选中,我将该页面选项存储在本地存储器中 现在,如果我进行页面刷新,我已经编写了一个简单的JS脚本来维护当前查看的页面 但是,我注意到@RenderBody()在我的JS脚本之前被称为1st,因此在显示所选页面之前,主页会非常短暂地出现 所以,在sudo代码中,我想要: <div id="mainContent" style="height:423px; "&

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

我有一个asp.net mvc web应用程序。 共有4个主要“页面” 通过单击菜单选项,一个页面被选中,我将该页面选项存储在本地存储器中

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

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

所以,在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>

如果(已选择页面!=“主页”)
{
//调用我的JS脚本加载局部视图
}
其他的
{
//否则加载主页
@RenderBody()
}

我的方法是否正确?我如何才能按照我所描述的方式进行操作?

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

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

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

  • 默认情况下,隐藏标记中的所有内容,就像在js中执行
    display:none
    一样简单,只需一行js/jquery即可决定显示和显示内容。也许在您当前的代码中更容易实现


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

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

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

  • 默认情况下,隐藏标记中的所有内容,就像在js中执行
    display:none
    一样简单,只需一行js/jquery即可决定显示和显示内容。也许在您当前的代码中更容易实现


  • 谢谢你怜悯我:)我喜欢你的选择2。谢谢你怜悯我:)我喜欢你的选择2。谢谢