将所有JavaScript保留在页面底部的干净模式是什么?

Sam*_*ron 18 c# asp.net razor

我们有各种页面的嵌套布局.例如:

Master.cshtml

<!DOCTYPE html>
<html>
   <head>...</head>
   <body>@RenderBody()<body>
</html>
Run Code Online (Sandbox Code Playgroud)

Question.cshtml

<div>
  ... lot of stuff ...
  @Html.Partial("Voting", Model.Votes)
</div>
<script type="text/javascript">
  ... some javascript ..
</script>
Run Code Online (Sandbox Code Playgroud)

Voting.cshtml

<div>
  ... lot of stuff ...
</div>
<script type="text/javascript">
  ... some javascript ..
</script>
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我想在所有内容之后推送所有JavaScript块在页面的页脚中呈现.

有没有办法在嵌套的partials中定义一个魔术指令,可以导致各种脚本标签在页面底部按顺序呈现?

例如,我可以创建一个捕获所有js块的魔术助手,然后获得顶层布局来渲染它:

Voting.cshtml

<div>
  ... lot of stuff ...
</div>
@appendJSToFooter{
   <script type="text/javascript">
     ... some javascript ..
   </script>
}
Run Code Online (Sandbox Code Playgroud)

dia*_*aho 1

body您可以在文件中的元素底部定义一个部分,Master.cshtml如下所示:

@RenderSection("Footer", required: false)
Run Code Online (Sandbox Code Playgroud)

然后在各个.cshtml文件中您可以使用以下内容:

@section Footer {
    <script type="text/javascript">
    ...
    </script>
}
Run Code Online (Sandbox Code Playgroud)