C# 为什么没有';Visual Studio是否告诉我视图中存在错误?

C# 为什么没有';Visual Studio是否告诉我视图中存在错误?,c#,visual-studio,asp.net-mvc-3,C#,Visual Studio,Asp.net Mvc 3,我做了一件有点傻的事——我创建了一个新项目,并称之为“目录”,没有意识到并忘记这是一个语言/保留字 不管怎样,我有了我的设计概要,然后就开始工作了 几个小时后,我第一次准备建造,建造得很好。然后我去跑步,但它不起作用 (此时,我打开了视图编译) 在试图理解错误之后,我意识到为什么它不起作用,于是我去了一些地方重新命名 我将项目和解决方案名称从Directory更改为WebDirectory,并在可以看到它的地方更改了所有引用 但是,该项目无法编译,它给了我以下错误: 在进入这个文件并试图更好地

我做了一件有点傻的事——我创建了一个新项目,并称之为“目录”,没有意识到并忘记这是一个语言/保留字

不管怎样,我有了我的设计概要,然后就开始工作了

几个小时后,我第一次准备建造,建造得很好。然后我去跑步,但它不起作用

(此时,我打开了视图编译)

在试图理解错误之后,我意识到为什么它不起作用,于是我去了一些地方重新命名

我将项目和解决方案名称从
Directory
更改为
WebDirectory
,并在可以看到它的地方更改了所有引用

但是,该项目无法编译,它给了我以下错误:

在进入这个文件并试图更好地理解它之后,我发现我错过了重命名一些视图。打开这些视图时,会出现以下错误:

现在,如果我马上就发现了这些错误,那么我就可以更容易地看到错误所在

我已经打开了编译视图,我猜第一个图像就是编译视图中显示的错误,但是,为什么不在视图中显示错误呢?它完全可以做到这一点(参见第二张图),这比第一个图像有用得多,因为我甚至无法更改它们


(如果有人能告诉我重命名项目所在的文件夹是否安全,那么奖励积分/不值得单独提问,因为我已经从VS中重命名了项目/解决方案)

这可能是因为Razor引擎虽然很好地集成到VS中,但不是IDE的固有部分。请记住,MVC是一个附加库

您在第一个屏幕截图中看到的CS文件可能是从打开的“编译视图”生成的CS。在打开编译视图之前,这些文件根本不存在。打开编译视图会创建它们,并给您一个编译错误(.cshtml文件在您访问页面之前不会编译,因此不符合编译错误的条件)


第二个屏幕截图来自打开cshtml文件,这使Razor有机会编译、评估它们并显示“伪编译时”错误。razor试图在编译时(相对于页面查看时)编译项目中的所有.cshtml文件,这在最好的情况下可能非常困难,在最坏的情况下在语义上是不可能的。

虽然我们都理解您在VS方面遇到了一个令人沮丧的问题,但我不确定这里是否有人(甚至Jon Skeet)我可以告诉你为什么VS是这样工作的。谢谢,我完全理解。。。按照您的术语,我不想编译,我只想在运行时评估所有文件——当然,这比编译要求要低!?我觉得这样做有点傻。同意,但就是这样。我可以推测为什么它是这样工作的(我的答案很可能是这样),但唉,我无法解决它:-)