微軟這次為MVC建立了三個DLL庫,分別是
System.Web.MVC.DLL(MVC的主要類,中間整合了大部分原來mvctoolkit的方法);
System.Web.Abstractions.DLL(HttpContextBase,HTTPRequestBase,HttpResponseBase,原來的3.6版中的IHttpContext,IHttpRequest,IHttpResponse介面進化而來的類)
System.Web.Routing.DLL(這裡面最常用到的就是一個RouteValueDictionary)
WEB.config部分
這次放出的mvc preview 2相對於前一個版本,又取消了對於的版本為3.6的System.Web.Extensions的引用,
所以,原來有關引用3.6的節點全部都要改成引用3.5版的System.Web.Extensions;
Assemblies節點引用了上面說到的三個類
httpModules中UrlRoutingModule引用至
<add
name="UrlRoutingModule"
type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Global.ascx中定義ROUTE做了幾處修改
原來的格式為:
RouteTable.Routes.Add(new Route
{
Url = "[controller]/[action]/[id]",
Defaults = new { action = "Index", id = (string)null },
RouteHandler = typeof(MvcRouteHandler)
});
現在改成了:
RouteTable.Routes.Add(new
Route("{controller}/{action}/{id}", new
MvcRouteHandler())
{
Defaults = new
RouteValueDictionary(new { action = "Index", id =(string)null }),
});
這裡要說到一個新的功能,URL中支援一個*號。例:{controller}/{*afterstring}
比如用戶端訪問的URL為 http://localhsot/Home/scott/2007/8/2,那麼在controller中取到這的個afterstring值就為scott/2007/8/2。
Controller
取消了原來的[ControllerAction]的屬性。不知道這個是為了什麼
其它的基本上沒啥改動,就是原來的MVCTOOLKITS不能用了造成了極大的代碼修改問題.
MVC2剛剛安裝.還有啥新功能還沒有發現.相關的網上的內容太少,歡迎大家討論!