11

所以我最近开始使用 ASP.NET MVC 4。我正在使用剃刀引擎。我的问题是关于后缀为 cshtml 的视图文件。在我看来,这些是由 razor 预编译成 *.cs 文件的,然后这些文件又被编译成 MSIL。(我作为 JSP 开发人员时熟悉的一种模式。)我做出这种假设的一个原因是,如果我在 cshtml 文件中输入一些无效的 c# 代码,我会收到如下所示的编译错误:

第 34 行:公共类 _Page_Views_BaseDataAdmin_Index_cshtml :...

并且第 34 行并不表示错误在 cshtml 文件中的位置,就像 _Page_Views_BaseDataAdmin_Index_cshtml 类似乎指的是常规 .net 类而不是视图文件一样。

所以我的问题是:我在哪里可以找到 cs 文件?具体来说,在上面的示例中,“_Page_Views_BaseDataAdmin_Index_cshtml.cs”?也许我需要添加一些配置来告诉 MVC 将此 .cs 文件保留在磁盘上,如果是这样,我该怎么做?

谢谢!

4

2 回答 2

14

查找生成文件的快速提示是将其添加到您的 .cshtml 文件中。

这将立即向您显示完整路径

<div>This file is compiled to  @this.GetType().Assembly.CodeBase</div> 
于 2013-05-15T21:58:23.507 回答
5

您可以在 Temporary ASP.NET Files 文件夹中找到已编译的视图。

首先找到与您的视图对应的 .compiled 文件(例如:home.cshtml): home.cshtml.a8d08dba.compiled

此文件包含程序集名称:assembly="App_Web_hkc53urb"

您的 .cs 文件将是与数字连接的程序集名称:App_Web_hkc53urb.1.cs

一种更简单的方法可能是使用 Windows 搜索临时 ASP.NET 目录中的视图名称。

于 2012-11-02T16:20:28.363 回答