我看过很多代码都引用了这个:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
这很好,而且它有效...如果“something”被包含进去。我是否需要添加引用来获取它们?使用NuGet?复制一个DLL?这是从哪里来的?
当我运行我的项目时,我会得到一个404的资源错误。
我看过很多代码都引用了这个:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
这很好,而且它有效...如果“something”被包含进去。我是否需要添加引用来获取它们?使用NuGet?复制一个DLL?这是从哪里来的?
当我运行我的项目时,我会得到一个404的资源错误。
您需要创建捆绑包。这通常在 ASP.NET MVC 4 项目的 App_Start\BundleConfig.cs
文件中完成。在Bundling and Minification中都有解释。
在BundleConfig
类中,您需要像这样的东西(此方法应在Application_Start
中执行):
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
// ... more registrations ...
}
JavaScript源文件应该存在于Scripts
文件夹中。上面链接的教程解释了如何将缩小版本捆绑到发布版本中等。
提醒大家一下 - 我看到了很多有关在MVC中使用Bundles的例子,但是大多数都没有提到这需要引用System.Web.Optimization.dll程序集,并且你可以通过添加Microsoft ASP.NET Web Optimization Framework包来获取它。
是的,你必须在应用程序中注册bundles。
Global.asax.cs:
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
// Register the bundles
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
BundleConfig.cs:
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.livequery.js",
"~/Scripts/jquery.numeric.js"
));
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
App_Start/BundleConfig.cs
是所有捆绑声明的地方。
请考虑以下内容: bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
BundleConfig.cs
中添加对System.Web.Optimization
的引用。 - Dayan