1

我有一个项目可以在我的开发机器上编译并运行良好,但是当我在 Web 服务器上运行它时,出现以下错误。

解析器错误消息:文件“/Views/Shared/Main.master.cs”不存在。

提到的文件在服务器上不存在,但文件“/Views/Shared/Main.master”存在。

我使用“发布”命令上传项目。是不是缺少cs文件?

是否有一些设置可以及时编译需要关闭?

4

4 回答 4

7

我偶然发现了这个解决方案。

母版页具有以下属性CodeFile="Main.master.cs"。当我用它替换它时,CodeBehind="Main.master.cs"它按预期工作。

该文件最初来自较旧的 Web 应用程序,但我不知道其中的区别是什么意思。如果其他人可以提出更好的解释,我将接受他们的答案而不是这个答案。

于 2009-01-17T15:20:28.053 回答
1

很高兴你弄明白了。从“网站”转换为“Web 应用程序”项目类型时可能会出现问题。

http://aspadvice.com/blogs/ssmith/archive/2007/01/24/CodeFile-or-CodeBehind.aspx

于 2009-01-17T15:48:19.040 回答
0

通常这些文件标有对存在于 bin 中的 dll 的引用,例如 Main.master 的继承声明中的 App_Web_nnnnn。Web服务器上的那个文件是这种情况吗?引用的dll是否存在于bin中?如果不是,那么它可能不会按应有的方式进行预编译。

于 2009-01-17T15:09:03.240 回答
0

据我所见,我认为您甚至不需要代码隐藏页面,对吗?

我已经从我的应用程序中出于任何原因存在的任何页面中删除了引用。

Also, when you create a new View, I don't think it even creates the code-behind page in MVC, does it? (Really threw me to start with!!)

于 2009-06-10T19:49:09.907 回答