ASP.NET MVC定位从cshtml生成的cs文件?

时间:2012-11-02 14:46:51

标签: asp.net-mvc razor

所以我最近开始使用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文件保存在磁盘上,如果是这样,我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:13)

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

这将立即显示完整路径

<div>This file is compiled to  @this.GetType().Assembly.CodeBase</div> 

答案 1 :(得分:5)

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

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

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

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

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