[英]asp.NET Web App, how do I share classes with all code-behind files?
[英]No code-behind fields for server controls in ASP.NET design in Web App
我在Visual Studio 2008
創建了一個New Web Site
,並添加了一個帶有控件的頁面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form runat="server">
<div>
<asp:Label runat="server" ID="lblFoobar">Foobar</asp:Label>
</div>
</form>
</body>
</html>
並且生成的代碼隱藏類獲得了一個新字段lblFoobar
。
我可以將其作為本地實例變量訪問任何成員。 一切正常。
但是,當我創建一個New ASP.NET Application
,相同的方法會引發錯誤:
The name 'lblFoobar' does not exist in the current context
為什么?
.aspx頁上應該有兩個文件。 一個應該是.aspx.designer.cs文件,另一個應該是代碼隱藏文件.aspx.cs文件。
如果在解決方案資源管理器中右鍵單擊aspx文件,然后選擇“查看Codegen文件”,它將為您打開.aspx.designer.cs文件。 標簽應在此處聲明。
如果不是,那么設計器還沒有正確解析您的標記。 在設計視圖中打開.aspx文件,進行一些小的更改,將其還原並刪除,以使設計器再次運行。
好的,您的示例代碼缺少ASP.NET頁面最重要的內容,它是@Page指令,它告訴ASP.NET引擎為該頁面實例化哪個類,以及是否需要動態編譯任何代碼。
確保您不僅將整個頁面從網站復制到Web應用程序,而且還創建了一個新頁面。
確保您的.aspx頁具有正確的@page指令,該指令應接近:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.