bfl*_*mi3 34 asp.net-mvc asp.net-mvc-4
我有一个带有一个@RenderSection("scripts")
部分的布局,我有一个捆绑包需要包含在本节中的某些视图中.我认为在视图中执行此操作会起作用,但它不会渲染脚本.
@section scripts {
@Scripts.Render("~/bundles/myBundle")
}
Run Code Online (Sandbox Code Playgroud)
在我看来,如何在脚本部分包含一个包?
布局
@Scripts.Render("~/bundles/jquery", "~/bundles/scripts")
@RenderSection("scripts", required: false)
Run Code Online (Sandbox Code Playgroud)
视图
@section scripts {
@Scripts.Render("~/bundles/movie")
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*ath 37
在View中尝试下面提到的解决方案.
视图
@section Scripts{
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/movie")"></script>
}
Run Code Online (Sandbox Code Playgroud)
Yog*_*raj 17
为什么要将渲染与捆绑混合?如果您选择沿着捆绑的路线,您可以简单地将您的脚本放在.JS文件中,如果您愿意,可以将它放在自己的捆绑包中,并在您的视图上调用该捆绑包.例如:
bundles.Add(new ScriptBundle("~/bundles/myscripts").Include(
"~/Scripts/myscript1.js",
"~/Scripts/myscript2.js"));
Run Code Online (Sandbox Code Playgroud)
然后查看将有以下内容:
@Scripts.Render("~/bundles/myscripts")
Run Code Online (Sandbox Code Playgroud)
还要确保您的Web.config将编译调试设置为false,如下所示:
<compilation debug="false" />
Run Code Online (Sandbox Code Playgroud)
它确保脚本捆绑和缩小.
更新
根据评论和我最近的经验,我可以看到为什么我们要将两者结合使用.完美的社区学习案例!:)所以,如果你决定回来进行重构,我会确保没有开头的拼写错误.如果仍然无效,请告诉我问题是什么,我会相应地更新答案.感谢大家!