将 PartialView 的 JavaScript 放在页面上的特殊位置

Put javascript of PartialView to special place on page

本文关键字:位置 PartialView JavaScript      更新时间:2023-09-26

我有以下页面:

Page.cshtml:

<some html>
        @foreach (var item in Model.OffersOutstanding)
        {
            @Html.Partial("PartialOfferAccept", item.AcceptForm)
        }
</some html>
    <script>
// all js here
</script>
/* end of file */

和 PartialView PartialOfferAccept.cshtml:

<some html>...</some html>
<script>
// script, specified for partial view
</script>

在结果 HTML 中,它可以工作,但混合了 js 和 html。我想将所有部分视图脚本放在页面末尾。最好使用 RenderAction,但 RenderAction 只允许用于布局。任何分离部分视图内容并放在页面上不同位置的方法。将分部视图分离为 2 个分部视图的功能不提供:)

事实证明,我的以下答案显然是设计上不可能实现的。不知道为什么会这样,但是以下问题提出了与您遇到的问题相同的问题,并且它链接到Nuget包以启用以下功能。

使用剃刀视图引擎从 MVC 3 ASP.NET 部分视图将内容注入特定部分

旧答案

您应该使用@section帮助程序。在该部分视图上,您只需执行以下操作:

@section Scripts { 
    <script>
        //Partial view code here
    </script>
}

然后在您的_Layout.cshtml上,您应该在页面底部显示以下内容

@RenderSection("Scripts", false)

这样,您就可以轻松地管理所有脚本并将其放置在一个位置,并基于每个视图使用自定义脚本