当前流行的应该是mvc3才对。然后在研究mvc3的源代码时候,@Html这个属性下的扩展方法Partial()都没有。IntelliSense不会提示该方法,找了半天的资料也问了一些博友,没看到好的解决棒法。最后没辙另辟蹊跷,就开始着手研究mvc4的源代码。正好这几天机器在体验win8,然后就顺便安装了vs2012。所以就在vs2012下体验mvc4的源码。
部署如下:先去codeplex下载mvc4源码,在vs2012下打开如图:
关于mvc4源代码的调试我参考了这个 地址 但是并没有这么复杂。调试步骤:
1.新建项目:vs2012已经自带了mvc3、mvc4.所以我建的是mvc4项目。
2.删除该项目下的System.Web.MVC,引用源代码下的mvc.dll
3.找到源代码下的CommonAssemblyInfo.cs
#if ASPNETMVC [assembly: AssemblyVersion("4.0.0.1")] [assembly: AssemblyFileVersion("4.0.0.1")] [assembly: AssemblyProduct("Microsoft ASP.NET MVC")] #elif ASPNETWEBPAGES
将这里的版本更该为4.0.0.1。
3.然后将我们自己刚建立的测试项目下的web.config。runtime节点下的mvc程序集版本更改为4.0.0.1
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1" /><!--更改这里--></dependentAssembly><dependentAssembly><assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /></dependentAssembly></assemblyBinding></runtime>
最后大功告成。可以调试了截图。
至此:可以完整的调试了。最终效果图如下:
当然不知道大家是如何来调试的,也许根本什么都没改就直接可以调试了,在没有更改程序集版本号的时候,我死进不去mvc源码,总是说还未给该文档加载符号@#$!#$%^&#。微软的表述看不懂,就只有自己摸索了。
源码地址:http://pan.baidu.com/s/1jG6Pkl4
当然也可以在codeplex上下载。