Razor MVC 渲染部分

23 浏览
0 Comments

Razor MVC 渲染部分

我正在使用Razor MVC的主布局,其中有类似以下的内容:

@RenderSection("scripts", required: false)

并且有一个局部视图

_partial.cshtml

其中包含以下内容:

@section scripts
{
    @Scripts.Render("~/bundles/jquery")
}

还有另一个局部视图在局部视图中

_partial_inside_partial.cshtml

它也包含以下内容:

@section scripts
{
    
}

问题是我在局部视图中有这段代码,它在页面中间加载,而jquery在底部。

0
0 Comments

在Razor MVC中,部分视图(partial views)中的Sections无法像全局视图(layout views)中那样正常工作。为了实现你想要的效果,你需要将脚本代码移到一个文件中,然后使用HTML助手(HTML helper)来渲染每个加载的部分视图中的脚本。

可以参考以下链接的代码示例:Using sections in Editor/Display templates

解决方法:

1. 将部分视图中的脚本代码移动到一个单独的文件中,例如script.js。

2. 在需要加载部分视图的地方,引入HTML助手(HTML helper),例如在主视图(layout view)中添加以下代码:

@Html.RenderPartialScripts()

3. 在App_Code文件夹中创建一个名为HtmlHelpers.cshtml的文件,并添加以下代码:

@helper RenderPartialScripts()
{
    
}

4. 在需要加载脚本的部分视图中,调用HTML助手(HTML helper)来渲染脚本:

@Html.RenderPartialScripts()

通过以上步骤,你可以在每个加载的部分视图中正确地渲染脚本代码,实现与全局视图相同的效果。

0