CodeFile 与 CodeBehind

来源:互联网 发布:mac顶栏设置 编辑:程序博客网 时间:2024/05/12 17:46

CodeFile 与 CodeBehind 的区别 
今天同事在把一个Web项目从 Web Site 升级成 Web Application 应用后部署的时候,报错:

Server Error in '/' Application.
--------------------------------------------------------------------------------
Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 
Parser Error Message: The file '/index.aspx.cs' does not exist.
Source Error: 
Line 1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile ="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>
Line 2:  

原因就是不知道为啥,采用系统升级工具,没有把这个Web Page 的 CodeFile 变成 CodeBehind 。
而且仅仅只是这一个页面没升级,其他页面都升级了。
再加上这两个属性都是 Code 开头的,一不留神,就会觉得一个属性。结果忙活了一回。

CodeFile 与 CodeBehind 在使用上是有很大区别的

先看 MSDN 上的说明:

CodeBehind 
指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。
Specifies the name of the compiled file that contains the class associated with the control. This attribute is not used at run time. 

CodeFile 
指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。
Specifies a path to the referenced code-behind file for the control. This attribute is used together with the Inherits attribute to associate a code-behind source file with a user control. The attribute is valid only for compiled controls.

我这里碰到的情况就是,整个Web 项目被编译成了组件,但是 ASPX 页面有如下的定义: 

 

<%@ Page Language="C#" AutoEventWireup="true" Codebehind="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="Community.IndexHomePage.index" %>

 

但是部署到站点后,我们不会部署 cs 文件,这时候,后一种写法就会报找不到文件的错误了。除非你把 cs 也部署出去,否则就会报编译时错误,找不到文件...
 

原创粉丝点击