Jon*_*eus 28 javascript asp.net-mvc renderpartial partial-views asp.net-mvc-3
我希望能够为部分视图提供一种在视图底部包含JavaScript代码/文件的方法.这将使部分视图包含它们所依赖的任何JavaScript文件.例如,如果我想编写需要创建JQueryUI对话框的部分,我想导入JQueryUI JavaScript文件以及添加呈现对话框的JavaScript代码.
我目前正在父视图中编写此代码,这使得使用局部视图毫无意义.
我知道RenderPartial多次调用会导致脚本被多次包含.一旦我知道如何从局部视图中将JavaScript实际包含到主视图中,这是一个可解决的问题.
在MasterPage(ASPX)中定义ContentPlaceHolder或在布局页面中定义部分(Razor)
ASPX:
<body>
<!-- End of Body -->
<asp:ContentPlaceHolder ID="JavaScriptIncludes" runat="server" />
</body>
Run Code Online (Sandbox Code Playgroud)
剃刀:
<body>
<!-- End of Body -->
@RenderSection("JavaScriptIncludes", required: false)
</body>
Run Code Online (Sandbox Code Playgroud)
然后在部分:
ASPX:
<asp:Content ID="ExtraJs" ContentPlaceHolderID="JavaScriptIncludes" runat="server">
<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
剃刀:
@section JavaScriptIncludes
{
<script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" />
}
Run Code Online (Sandbox Code Playgroud)
还要考虑使用HTML Helper来渲染<script>标记.
您可以在标签内包含<script>标签<body>,以便将它们放在局部视图中。