将javascript的PartialView放到页面特殊位置

Put javascript of PartialView to special place on page

我有以下页面:

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 只允许用于布局。任何分离部分视图内容并放在页面上不同位置的方法。 PS。不提供将局部视图分离为 2 个局部视图的功能:)

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

Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine

旧答案

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

@section Scripts { 

    <script>
        //Partial view code here
    </script>
}

然后在您的 _Layout.cshtml 页面底部应该有以下内容

@RenderSection("Scripts", false)

通过这种方式,您可以轻松地管理所有脚本并将其放置在一个位置,并在每个视图的基础上使用自定义脚本