(1)首先我们在新建---项目时,在mvc3.0中我们有三种选择:
在新建mvc3.0项目时,如果我们选择了aspx,那么我们新建的视图文件扩展名就是.aspx。如果我们选择了Razor,那么我们新建的视图文件扩展名就是.cshtml。
在http://msdn.microsoft.com/zh-cn/ff849693.aspx中给了我们很好的关于Razor这种新视图引擎的介绍。
(2)mvc3.0中Web.config文件中有几处变化,例如:
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
版本号的变化:由原来的System.Web.Mvc, Version=2.0.0.0变成了现在的System.Web.Mvc, Version=3.0.0.0;
还有就是
这是在mvc2.0中的。下面是mvc3.0中的:
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
这就是mvc3.0在Web.config文件中两处较为明显的改变啊!
(3)我们都知道在mvc2.0及1.0更早的版本中,我们在使用ViewData时必须是:
public ActionResult Index() {
ViewData["Title"] = "The Title";
ViewData["Message"] = "Hello World!";
}
那么在mvc3.0版本中,我们就可以用如下方法:
public ActionResult Index() {
ViewModel.Title = "The Title";
ViewModel.Message = "Hello World!";
}
这就是mvc3.0中其中一大改变啊!
(4)在"Add View"对话框中也有所改变。
我们可以在视图引擎有两种选择啊!aspx和Razor。
(5)Global.asax中的变化。在mvc2.0版本中Application_Start()是如下定义的:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
在mvc3.0版本中Application_Start()是如下定义的:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
此外如果我们想使用action filter,那么我们必须在Application_Start中添加:
GlobalFilters.Filters.Add(new MyActionFilter());
(6)New JsonValueProviderFactory Class变化
如果我们想了解更多关于JsonValueProviderFactory的信息,可以在Sending JSON to an ASP.NET MVC Action Method Argument 这篇博客中获得非常详细的信息啊!