- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定我是否正确地处理了这个问题。
我有一个 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运行,并且没有办法改变这一点。因此,您编写的伪代码几乎不可能实现。
也就是说,总有一些选项可以通过其他方式提供您所需的功能。几个选项包括:
决定在服务器端渲染什么。例如,将此页面选择存储在 session 中会产生很大的开销吗?这还会给您带来额外的好处,即不发送不会向用户显示的 html 标记,从而节省一些流量和一些浏览器渲染时间。
默认隐藏标记中的所有内容,就像执行 display: none
一样简单,在您的 js 中决定显示什么并用一行 js/jquery 来显示它。也许在您当前的代码中更容易实现一些。
关于javascript - 忽略@RenderBody(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35454797/
来自使用 ajax 的 webform 背景,我正在尝试使用 mvc 创建类似的内容。 我已经弄清楚了 Controller 、 View 和模型的作用。 我现在想做的是,当我的用户单击按钮时,会调用
我不确定我是否正确地处理了这个问题。 我有一个 ASP.NET MVC Web 应用程序。有 4 个主要“页面”通过单击菜单选项,可以选择一个页面,并将该页面选项存储在本地存储中。 现在,如果我刷新页
我试图在我的 _Layout.cshtml 中使用媒体查询来确定显示哪个导航栏。 在较大的设备上,我想使用 Bootstrap (col-2) 显示垂直导航栏,并且我想使用 RenderBody()
我有一个带有 JQuery UI Tabs 的 ASP.NET MVC 3 应用程序。我有一个主布局页面_layout.cshtml,代码如下。主 _layout.cshtml 需要 @RenderB
您好,我正在开发一个带有 boostrap 模板的网站。我想要的是,当用户单击链接时,它会调用 Controller 函数返回 View 并将焦点转移到正文部分。 为此,我使用 _Layout 和渲染
是否有这样的方法可以在 javascript 或 javascript 库中模拟 @RenderBody() ?我正在尝试启动一个新的 html/javascript 项目(无服务器端语言),并希望能
我正在使用 ASP.NET Core 2.2。我遇到的问题是我不知道在哪里使用@RenderBody() 在我的 _Layout 页面中。这是我想做的事情的代表: 绿色部分应该来自_Layout,白色
我有一个 ASP.NET MVC web 应用程序,其中的所有页面都使用一个主 Layout.cshtml 页面。虽然我通常想要 RenderBody(),但我有一个可以在我的数据库中启用的站点关闭机
我将 Canvas 加载到 _Layout.cshtml 上 当我从索引页面浏览到关于或联系方式时,正在显示,但页面内容丢失。 Index页面将加载 div在 下标记但是About页面缺少内容。 我
在 _Layout.cshtml 中是否可以确定将在 @RenderBody() 中呈现的 View ? 最佳答案 您可以通过 ((RazorView)ViewContext.View).ViewPa
在MVC/Razor语法中,我试图理解为什么我们需要@RenderBody。 例如(代码取自 example ) My WebSite
我有三个简单的布局, _Layout.cshtml (这是基本布局) @RenderSection("something", required: false) @RenderBody() _Main.
我正在使用 MVC 5。 我需要在加载每个页面之前调用一个函数。我是在 _Layout.cshtml View 中完成的: $(function () { $('body').on(
我正在用 MVC 构建一个在线商店,现在正在设计它,我下载了 2 个 bootstraps 模板,并尝试了每个模板,我将下载文件中索引中的代码复制到我的 _layout.cshtml ,在运行元素后我
我正在尝试这样做: @{
我使用属性来路由。这是否相关,我不知道。 当我不使用“路由”属性时,共享 Controller 中的 _Layaout() 操作不起作用但页面正在呈现。 public class SharedCont
默认情况下,MVC3 应用中_Layout.cshtml 中的@RenderBody 指向~/Views/Home/Index。 @RenderBody() 这个设置在哪里,我如何将它更改为指向
Code available here 在 ASP.NET Core 3.0 Web 应用程序中,我添加了以下简单的标记帮助器: [HtmlTargetElement("submit-button")
我有一个母版页,它使用 @RenderBody 来显示当前的 Controller \ Action 内容。我遇到了一种情况,我想根据使用@RenderBody 呈现的 Controller 来显示部
所以这是我的问题:我的 MVC 3 项目中有我的布局,其中包含所有 js 脚本: function mycarousel_initCallback(carousel) {
我是一名优秀的程序员,十分优秀!