asp.net mvc 3.0 知识点整理 ----- (4).asp.net mvc 3 和asp.net mvc 4 对比

时间:2023-03-08 17:16:52
asp.net mvc 3.0 知识点整理 ----- (4).asp.net mvc 3 和asp.net mvc 4 对比

  asp.net mvc的版本更新很快,每个版本都在前一个版本的基础上,进行性能的优化和功能的完善和提升。

以下,便是我对比了下两个版本,发现最基本的差异。(更新补充中。。)

一、关于配置类Global.asax的不同

  为了较少配置类的杂乱代码,asp.net mvc 4 中 将Global.asax文件中的内容单独到 App_Start 下的几个配置文件中去。

在asp.net mvc 3 中:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}

//设置路由
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 路由匹配格式,默认URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 默认参数
); } protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); // Use LocalDB for Entity Framework by default
Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True"); RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);
BootstrapMvcSample.ExampleLayoutsRouteConfig.RegisterRoutes(RouteTable.Routes);
}

在asp.net mvc 4中:

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}

其中,使用到的config文件单独在了App_Start文件夹中。

WebApiConfig.cs: 用于注册Web API路由和配置设置。
FilterConfig.cs: 用来注册全局MVC过滤。(默认HandleErrorAttribute是已注册的)
RouteConfig.cs: 有关MVC路由的配置
BundleConfig.cs: 有关用于捆绑和缩小的注册捆,默认的css和js等。