ASP.net mvc2源码应用于项目中需要注意的几个地方

1.下载源码,地址为http://aspnet.codeplex.com/

2.解压后,添加到项目中

注意这里的项目名称不要随便更改,否则需要修改mvc2源码的众多文件,重新添加引用"System.web"命名空间。

3.删除原项目中对System.web.mvc.dll的引用

4..重新添加引用System.web.mvc项目

5.此时直接编译运行会报如下错误

 

6.为避免以上错误,需要更改配置文件,灰色选中的web.config

 

 

修改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" />--><!--原来的-->
        
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" /><!--修改后-->
      
</assemblies>
    
</compilation>

<!--第二处-->
<runtime>
    
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      
<dependentAssembly>
        
<!--<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />--><!--原来的-->
        
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="null" /><!--修改后的-->
        
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
      
</dependentAssembly>
    
</assemblyBinding>
  
</runtime>

 

是不是运行后,首页可以正常显示了?!

但是,当打开http://localhost:9527/Account/LogOn也就是新建mvc2项目时,官方模板提供的登录界面,报了一个错误,如图

Linq的,对object对象泛型类型判断错误;因为这里用到model,当尝试强类型时,发现不能纠正,难道我要去修改mvc2源码?要改就改filter相关的那几个类。

7.为避免以上错误的发生,我们还是用最简单的方法来搞定吧——修改第二个灰色选中的web.config

 

 

 

原来的
<pages
        
validateRequest="false"
        pageParserFilterType
="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType
="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType
="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      
<controls>
        
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      
</controls>
    
</pages>
修改后
<pages
        
validateRequest="false"
        pageParserFilterType
="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"
        pageBaseType
="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType
="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      
<controls>
        
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      
</controls>
    
</pages>

 

 

关键是这句,改多了,就过了

pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"

 

至此,mvc2源码在项目中的应用可以畅通无阻了。你可以根据自己的需要,修改mvc2的源码……最好是扩展或重写吧。……

posted @ 2010-07-28 10:20  从孑开始  阅读(1701)  评论(2编辑  收藏  举报