javascript - 如何在 ASP.NET MVC3 中从部分 View 包含 JavaScript

标签 javascript asp.net-mvc asp.net-mvc-3 partial-views renderpartial

我希望能够为部分 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/

相关文章:

javascript - 单击 HTML 按钮后禁用该按钮的最快方法是什么?

javascript - 在模板中使用未声明的指令时是否有 Angular 警告我

c# - InstancePerRequest DbContext ASP.NET MVC

.net - 如果 ASP.NET MVC3 Controller 的 SessionStateBehavior 是只读,它可以是无 session 的吗?

c# - 在 ASP.NET MVC3 中共享对象应用程序范围

javascript - 不使用 javascript 检查表单数据的更改

javascript - 在 PHP 中使用 JSON 时在字符串之前添加字符串长度

c# - 上传 Blob 时 ASP.NET MVC Controller 导致页面重新加载

asp.net-mvc - ASP.NET MVC 5 中未调用 Azure RoleEnvironment.Changing 事件

c# - 项目停止构建并将 '.1' 附加到项目 .dll