解决方案:
1.在web.config文件中添加<add namespace="System.Web.Optimization"/>,如下:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="MvcShopping" />
</namespaces>
</pages>
</system.web.webPages.razor>
2.如果还是报错,需要引用程序集System.Web.Optimization.dll,可以通过NuGet引用。
此程序集的作用是 对javascript和style的引入(ScriptBundle和StyleBundle)、代码合并和压缩的优化(Bundling and Minification )。
目前我使用到的就是对javascript和style的引入。具体引用的文件定义在App_Start文件夹的BundleConfig.cs文件内(不知为何,我建的MVC空项目并没有这个源文件,我是从其它项目中直接Copy过来的),内容如下:
using System.Web.Optimization;
namespace MvcShopping
{
public class BundleConfig
{
// 有关绑定的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("<span style="color:#ff0000;"><strong><em>~/bundles/jqueryval</em></strong></span>").Include(
"~/Scripts/jquery.validate*"));
// 使用要用于开发和学习的 Modernizr 的开发版本。然后,当你做好
// 生产准备时,请使用 http://modernizr.com 上的生成工具来仅选择所需的测试。
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
}
}
}
在View中引用的JS文件就是上面代码中红色字体后面Include的JS文件。