3

我有这样的设置:

布局_管理员

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin</title>

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")

@Html.RenderCssHere()
@Html.RenderJsHere()
</head>
<body> ... </body>

然后是 Category.cshtml 上加载的第一个部分页面

@using ClientDependency.Core.Mvc
@{
    ViewBag.Title = "Admin > Category";
    Layout = "~/Views/Admin/_Layout_Admin.cshtml";
    Html.RequiresJs("~/scripts/jsTree3/jstree.js");
    Html.RequiresJs("~/scripts/jsTree3/jstreegrid.js");
    Html.RequiresCss("~/content/jsTree/themes/default/style.css");
  }

这些脚本可以毫无问题地完美呈现。现在 Category.cshtml 加载另一个名为 _CreateCategory.cshtml 的部分,它具有以下标题

@using ClientDependency.Core.Mvc
@model MyProject.Data.Models.Category

@{
    ViewBag.Title = "Create";
    Layout = null;
    Html.RequiresJs("~/scripts/plupload/plupload.dev.js");
    Html.RequiresJs("~/scripts/plupload/moxie.js");

}

最后一组客户端依赖项根本没有被呈现。_CreateCategory.cshtml 是通过在 js 中调用的控制器操作加载的。

$("#btn_addCategory").on("click", function(e) {
                $("#categoryDetails").load("CreateCategoryView");

所以问题是如何获取在这个部分渲染中定义的脚本。如果我在 Category.cshtml 中包含这些脚本,它们会被渲染,但 _CreateCategory.cshtml 仍将它们显示为未定义。

我认为这是因为 js 正在调用控制器操作而不是剃须刀页面中的 @Html.Action。但这样做对我来说不是一个选择。

任何帮助表示赞赏。

4

0 回答 0