我希望能够为部分 View 提供一种在 View 底部包含 JavaScript 代码/文件的方法。这将使部分 View 能够包含它们所依赖的任何 JavaScript 文件。例如,如果我想编写需要创建 JQueryUI 对话框的部分,我想导入 JQueryUI JavaScript 文件并添加呈现对话框的 JavaScript 代码。
我目前正在父 View 中编写此代码,这使得使用部分 View 毫无意义。
我知道多次调用 RenderPartial
会导致脚本被多次包含。一旦我知道如何将 JavaScript 从分部 View 实际包含到主视图中,这就是一个可以解决的问题。
最佳答案
在母版页 (ASPX) 中定义 ContentPlaceHolder 或在布局页面 (Razor) 中定义 部分
ASPX:
<body>
<!-- End of Body -->
<asp:ContentPlaceHolder ID="JavaScriptIncludes" runat="server" />
</body>
Razor :
<body>
<!-- End of Body -->
@RenderSection("JavaScriptIncludes", required: false)
</body>
然后在部分:
ASPX:
<asp:Content ID="ExtraJs" ContentPlaceHolderID="JavaScriptIncludes" runat="server">
<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" />
</asp:Content>
Razor :
@section JavaScriptIncludes
{
<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" />
}
还可以考虑使用 HTML Helper 来渲染 <script>
标签。
关于javascript - 如何在 ASP.NET MVC3 中从部分 View 包含 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707982/