在开发Asp.net MVC 难免会遇到问题需要了解mvc运作原理
你想学习MVC底层是如何运作的
幸好微软有将ASP.Net MVC开源。
但....直接看原始码实在是不好搞懂,怎么办呢?
如果可以使用侦错模式来查看程式码 一定可更容易了解里面的来龙去脉
所以小弟就跟大家分享 在网上找到如何在ASP.Net MVC原始码上侦错
在专案上侦错MVC按照下面五个步骤即可完成
一、下载MVC原始码
MVC原始码网址
二、打开自己的专案
点选方案->加入->加入现有专案
System.Web.Mvc
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages
System.Web.WebPages.Razor

三.改变目前方案的DLL引用
删除原本预设引用
将目前的专案加入引用

四.移除签署
将asp.net mvc那5个专案移除[加密签署]
五.移除Assembly.publicKey
移除 AssemblyInfo上PublicKey
如下面程式: 将PublickKey移除即可
移除前:[assembly: InternalsVisibleTo("System.Web.Mvc, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] [assembly: InternalsVisibleTo("System.Web.Helpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]移除后:[assembly: InternalsVisibleTo("System.Web.Mvc")] [assembly: InternalsVisibleTo("System.Web.Helpers")]
移除 webcoig上PublicKey移除前:<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /></sectionGroup>移除后:<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor"><section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor" requirePermission="false" /><section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor" requirePermission="false" /></sectionGroup>
重点是在第五点 一定要照做不然会无法编译
如上述都执行完了 就可以开心来侦错MVC搂^^
小弟已将可侦错MVC的专案放在github上 连结
参考资料: https://blogs.msdn.microsoft.com/micl/2014/06/06/how-to-debug-your-application-with-mvc-fresh-source-code/