微软这次为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)
这次放出的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"/>
原来的格式为:
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。
取消了原来的[ControllerAction]的属性。不知道这个是为了什么
其它的基本上没啥改动,就是原来的MVCTOOLKITS不能用了造成了极大的代码修改问题.
MVC2刚刚安装.还有啥新功能还没有发现.相关的网上的内容太少,欢迎大家讨论!