如何调试MVC4的代码

如题所述

下载了 http //aspnetwebstack codeplex com/SourceControl/list/changesets 这上面
.NET 4.0 RTM的源码,

装了一个git,然后下载就可以了

git clone https //git01 codeplex com/aspnetwebstack.git

时间稍微长了点儿,半个小时吧;

然后里面src全是MVC4的源码(其实很大一部分都在里面了)

解决反感是runtime.sln的,打开之后,在里面新建一个MVC4的项目,

这里有个问题,我下载的MVC4,在
system.web.mvc项目里Properties\CommonAssembley.cs里,全是5.0.0.0的版本号,

我把他改成了5.0.0.1

#if
ASPNETMVC [assembly: AssemblyVersion("5.0.0.1")] [assembly:
AssemblyFileVersion("5.0.0.1")] [assembly: AssemblyProduct("Microsoft ASP.NET
MVC")] #elif ASPNETWEBPAGES

然后修改根目录下的 web.config

<appSettings>

<add
key="webpages:Version" value="3.0.0.0" />

<add key="webpages:Enabled" value="false" />

<add key="PreserveLoginUrl" value="true" />

<add key="ClientValidationEnabled" value="true" />

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

</appSettings>
这里之所以改成3.0.0.0的原因,是因为在我下载的源码里,他的版本号就是3.0,

<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="3.0.0.0" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35" />

<bindingRedirect
oldVersion="1.0.0.0-4.0.0.0" newVersion="5.0.0.1" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="System.Web.WebPages"
publicKeyToken="31bf3856ad364e35" />

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0"
newVersion="3.0.0.0" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="EntityFramework"
publicKeyToken="b77a5c561934e089" />

<bindingRedirect oldVersion="1.0.0.0-5.0.0.0"
newVersion="5.0.0.0" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="WebGrease"
publicKeyToken="31bf3856ad364e35" />

<bindingRedirect oldVersion="1.0.0.0-1.3.0.0"
newVersion="1.3.0.0" />

</dependentAssembly>

</assemblyBinding>

</runtime> 这里的改成了我自己的版本号

然后修改view下面的web.config

<configSections>

<sectionGroup name="system.web.webPages.razor"
type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">

<section name="host"
type="System.Web.WebPages.Razor.Configuration.HostSection,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

<section name="pages"
type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

</sectionGroup>

</configSections>
这里修改成了3.0,当然具体是什么,看你自己下载的,但是我觉得大部分应该跟我的是一样的(环境VS2012,源码4.0 RTM)

<system.web.webPages.razor>

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,
System.Web.Mvc, Version=5.0.0.1,
Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

<pages pageBaseType="System.Web.Mvc.WebViewPage">

<namespaces>

<pages

validateRequest="false"

pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,
System.Web.Mvc, Version=5.0.0.1,
Culture=neutral, PublicKeyToken=31BF3856AD364E35"

pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc,
Version=5.0.0.1, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"

userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc,
Version=5.0.0.1,
Culture=neutral,
PublicKeyToken=31BF3856AD364E35">

同样,修改之(具体是不是不修改也成,我就不知道了,我是按照网上的方法改的,最后的地方,会给出连接大家注意学习吧)

这样,配置文件和MVC代码中的版本号,就修改完了,

然后打开VS2012的命令行,执行

Run
"sn.exe -Vr *,31BF3856AD364E35" in the Visual Command line (哈哈,你看,我真的是COPY的,原创的东西几乎没有)

然后把项目中的system.web.mvc的引用,改到你的MVC4的源码里的项目,当然,不止这一个,不然会有很多地方报错的,大致的DLL有 :
system.web.razot; system.web.webpages;system.web.webpages.deployment;
system.web.webpages.razor; 这里不全没关系,网页上会明确提示少哪个的.

如果出现了一个类型转换的错误:

用户代码未处理
System.InvalidCastException

HResult=-2147467262

Message=[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为
[B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A
源自“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。类型
B 源自“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary
ASP.NET
Files\root\49f25bf0\9ce908d5\assembly\dl3\70f2ab4b\b0630cdc_834fce01\System.Web.WebPages.Razor.dll”位置处)。

Source=System.Web.WebPages.Razor

这个错误,就是我为什么要该system.web.webpages的版本好的原因了; 如果出现其他DLL,大家也可以随着改一下;

之后,就可以在页面中随便加空间,就能看到断点的执行了,好运;
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-08
装了一个git,然后下载就可以了
git clone git01.codeplex.com/aspnetwebstack.git
时间稍微长了点儿,半个小时吧;
然后里面src全是MVC4的源码(其实很大一部分都在里面了)
解决反感是runtime.sln的,打开之后,在里面新建一个MVC4的项目,
这里有个问题,我下载的MVC4,在 system.web.mvc项目里Properties\CommonAssembley.cs里,全是5.0.0.0的版本号,
我把他改成了5.0.0.1
#if ASPNETMVC [assembly: AssemblyVersion("5.0.0.1")] [assembly: AssemblyFileVersion("5.0.0.1")] [assembly: AssemblyProduct("Microsoft ASP.NET MVC")] #elif ASPNETWEBPAGES
然后修改根目录下的 web.config
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings> 这里之所以改成3.0.0.0的原因,是因为在我下载的源码里,他的版本号就是3.0,
<runtime>

MVC4.0 怎么使用Route Debugger进行路由调试呢?
PreApplicationStart字面上看是在Application_Start之前执行的,把它放到Application_Start之内,肯定不行

C# MVC4.0 ef做新增数据时出现的错误页面,这是调试的结果 我要的是解决...
数据库表没有主键的原因,你加上主键,然后更新Entity Model,如果不行,删除已有的Entity Model,删除Web.Config中的Entity定义,重建一个,应该可以了

.net mvc4会自动生成一个Shared下的Error.cshtml视图文件,系统偶尔会自 ...
error.cshtml这个页的功能是当程序发生异常错误时自动跳到这个页面。而我们做程序都会有一个异常处理的页面,自己做一个这样的页面,当捕获异常时让程序跳转到这个异常处理页面。

简述mvc流程?
MVC执行顺序1、看了一下代码,大概就是执行User控制器下的List这个Action,然后就会调用GetPager()函数,这个应该是加载列表的代码,GetPager就是获取列表查询数据需要的相关属性,以便于在页面上使用。2、}Filter的执行顺序为:Filter3=Filter1=Filter综上所述,使用拦截器显而易见的优点:解决了部分代码重...

devexpresstextbox在mvc4中设置字体大小
Dev c++调整字体大小方法:1、首先打开软件,进入操作界面。2、然后要设置字体,首先点击“工具”。3、在下拉菜单中选择“编辑器选项”。4、在“编辑器选项”中点击“显示”选项卡。5、在显示中可以调试字体大小。6、点击字体,也可以在下拉菜单中选择需要设置的字体。7、最后确定使设置生效,就完成了。

django的mvc是什么(djangomvt)
MVC2,MVC3,MVC4和MVC5的不同: 1、查看引擎: 视图引擎负责将HTML代码从视图呈现到浏览器。 MVC2仅使用Web窗体视图引擎(.aspx)作为默认视图引擎。 MVC3使用剃刀视图引擎(.c#和的cshtml。vbhtml(用于VisualBasic)和Web窗体视图引擎(.阿斯佩克斯)。 MVC4还使用剃刀视图引擎作为默认视图引擎,具有一些新功能,如条件属...

MVC4 My97日期控件特殊日期后台循环获得,自动转译单引号
需要前面的日期2014-09-24 和2014-09-16 吗 ?这个可以用字符串截取 取到日期后 截出两个日期然后 拼接一下。。。不知道 这个可不可以 这是我的想法

django的mvc是什么(django mvt)
所有这些在MVC2中都不可用。 所有这些都在MVC3和MVC4中提供。 3、合成语法: Web窗体视图引擎语法:% = HTML代码%在MVC2中。 (剃刀语法)剃刀视图引擎语法: @MVC3中的Html代码。 MVC4具有相同的剃刀视图引擎语法,但添加了新功能,如条件属性和“波形斜线”,即URL解析。 4、可用于在视图和控制器之间共享数据的对...

相似回答