我有这样的设置:
Layout_Admin
<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。但这样做对我来说不是一个选择。
感谢任何帮助。