由於p.campbell指出出,該文件了.Designer.cs .aspx文件鏈接到它的代碼隱藏.aspx.cs文件加入。如果沒有.designer.cs文件,.aspx.cs CodeBehind文件中的每個.aspx頁面控件都將返回錯誤「在當前上下文中不存在」。 .designer.cs中的鏈接基於aspx文件中的@ Page指令的「Inherits」屬性以及.aspx.cs CodeBehind文件的名稱空間和類來完成。 「Inherits」屬性的最後一部分必須與CodeBehind文件和.designer.cs文件中定義的類匹配,且其之前的段必須與.designer.cs和CodeBehind文件的名稱空間匹配。
實施例: myfile.aspx
<%@ Page Language="C#"
AutoEventWireup="true"
CodeBehind="myfile.aspx.cs"
Inherits="my.namespace.dot.classname" %>
myfile.aspx.cs
namespace my.namespace.dot {
public partial class classname : Page { ... }
}
注:代碼隱藏文件類必須從Page類繼承,或一些它們的衍生物。
myfile.designer.aspx.cs
namespace my.namespace.dot {
public partial class classname { ... }
}
注:類了.Designer.cs不關心繼承,只是類名的代碼隱藏和.aspx文件相匹配。
可以再生一個像這樣的丟失.designer文件(w3cgeek.com「Regenerate designer.cs‘):
- 創建同一目錄一個新的空白文件命名爲您的.aspx和.aspx.cs文件’ myfile.aspx.designer.cs「其中」myfile「是要鏈接的.aspx和.aspx.cs文件的名稱。
- 將一個空類名稱空間添加到新文件中,並確保它們的名稱與您要鏈接的.aspx和.aspx.cs文件中指定的名稱空間和類匹配。
- 保存.designer.cs文件,對.aspx文件進行任何更改(例如,添加空格),然後保存.aspx文件。
Visual Studio應該自動填充.designer.cs文件,其中包含所有必需的代碼以鏈接您的.aspx和CodeBehind文件。 「現在不存在」的錯誤現在應該消失了!
編輯:我添加了.designer.cs說明,因爲鏈接是死的,最初由p.campbell發佈。
感謝您的回覆,但是有可能手動要求重建頁面的設計器文件? – bAN 2010-07-20 11:00:35
@ban:你打賭,這裏是如何重新生成你的設計器文件:http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/ – 2010-07-20 13:12:36