将部分视图上的javascript放到页面上的特定位置

时间:2015-03-10 11:10:27

标签: javascript jquery asp.net-mvc-4 razor asp.net-mvc-partialview

我有以下页面:

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仅允许用于Layouts。任何方式来分隔部分视图内容并放在页面上的不同位置。 PS。将部分视图分成2个部分视图的功能不提供:)

1 个答案:

答案 0 :(得分:1)

原来我的答案显然不可能通过设计。不确定为什么会这样,但是下面的问题会带来与您相同的问题,并且链接到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)

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