我想能够提供一种局部视图的方式,在视图底部包含JavaScript代码/文件。这将允许部分视图包括他们依赖的任何JavaScript文件。例如,如果我想编写一个需要创建JQueryUI对话框的部分,我想导入JQueryUI JavaScript文件,以及添加呈现对话框的JavaScript代码。
我目前在父视图中编写此代码,这使得使用部分视图毫无意义。
我理解,多次调用RenderPartial将导致脚本被包括多次。这是一个可解决的问题,一旦我知道如何实际包括JavaScript到主视图从局部视图。
解决方法
在您的MasterPage(ASPX)或布局页面(Razor)中的Section中定义ContentPlaceHolder
ASPX:
<body> <!-- End of Body --> <asp:ContentPlaceHolder ID="JavaScriptIncludes" runat="server" /> </body>
剃刀:
<body> <!-- End of Body --> @RenderSection("JavaScriptIncludes",required: false) </body>
然后在Partial:
ASPX:
<asp:Content ID="ExtraJs" ContentPlaceHolderID="JavaScriptIncludes" runat="server"> <script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" /> </asp:Content>
剃刀:
@section JavaScriptIncludes { <script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")" /> }
还想想使用HTML助手来渲染< script>标签。