C# 当我尝试展开模型属性时,为什么Visual Studio 2013调试器会毫无错误地关闭?
我有一个小的ASP.NET MVC5项目,首先使用实体框架代码。我在控制器中放置了一个断点,这样我就可以检查变量的内容,以确保它们都包含它们应该包含的内容。一个这样的变量是一个复杂的模型对象,我从上下文中查询该对象,当我试图扩展该对象以查看其属性时,调试器只是关闭,没有明显的错误消息。我得到的唯一解释是在输出中,内容如下: 我查找了退出代码2147023895(0x800703e9),只发现这是一个堆栈溢出问题,这实际上无助于找出导致它的原因 最不寻常的是,如果我让应用程序运行,它将毫无问题地加载页面,并且似乎根本不会抛出任何错误。这是怎么回事 这是我的相关代码: 控制器C# 当我尝试展开模型属性时,为什么Visual Studio 2013调试器会毫无错误地关闭?,c#,asp.net-mvc,entity-framework,debugging,visual-studio-2013,C#,Asp.net Mvc,Entity Framework,Debugging,Visual Studio 2013,我有一个小的ASP.NET MVC5项目,首先使用实体框架代码。我在控制器中放置了一个断点,这样我就可以检查变量的内容,以确保它们都包含它们应该包含的内容。一个这样的变量是一个复杂的模型对象,我从上下文中查询该对象,当我试图扩展该对象以查看其属性时,调试器只是关闭,没有明显的错误消息。我得到的唯一解释是在输出中,内容如下: 我查找了退出代码2147023895(0x800703e9),只发现这是一个堆栈溢出问题,这实际上无助于找出导致它的原因 最不寻常的是,如果我让应用程序运行,它将毫无问题地加
public ActionResult Index()
{
//This is the line that crashed the debugger if I try to expand quarter
//after it is filled. There will only ever by one item marked isCurrent.
Quarter quarter = db.Quarter.First(x => x.isCurrent == true);
...
}
模型
看法
我四处寻找这个问题的解决方案,但找不到任何真正对我有帮助的东西,所以我选择在这里发布这篇文章,解释为什么会发生这种情况,以及修复它的超级简单的更改 问题在于模型中的线路:
public string QuarterAndYear {get{ return QuarterAndYear; }}
这是一个粗心的错误,我告诉它自己返回,这让我很头疼,因为我试图找出它为什么会在没有错误信息的情况下崩溃。应该是:
public string QuarterAndYear {get{ return Quarter.toString() + " Quarter of " + Year;}}
因为我实际上没有在视图中引用QuarterAndYear,所以在加载页面时没有抛出任何错误,而且它似乎运行得很好。但是,当我在调试时试图查看Quarter对象的属性时,它试图解析QuarterAndYear(它正在返回自己),并使调试器崩溃
...
@Html.LabelFor(model => model.Quarter.Quarter)
@Html.DisplayFor(model => model.Quarter.Quarter)
...
public string QuarterAndYear {get{ return QuarterAndYear; }}
public string QuarterAndYear {get{ return Quarter.toString() + " Quarter of " + Year;}}