2013-04-08 18 views
1

我正在學習.NET,我想知道web窗體中的代碼背後的代碼結構。在Web窗體中工作的代碼結構如何? - .NET

結構始終:

using System; 
namespace TestWebApp1 
{ 
    public partial class MyPage : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

是它使.NET看起來總是對我的頁面(文件名)類連接使用它來渲染頁面?

或者,我可以有一個叫名1比文件使用類Name2 : System.Web.UI.Page呈現的頁面?如果是的話,我如何得到這個工作?因爲我現在得到異常?

+0

這是一個部分類 - 即頁面和代碼隱藏是跨2個文件定義的同一類,因此使用相同的類名。後臺代碼中的方法在頁面生命週期的特定時間被調用,html在生命週期的適當步驟被渲染。頁面頂部的'<%@ %>'中的類名應與後面的代碼匹配。 – Basic 2013-04-08 07:15:24

回答

1

看看你的.aspx文件的頂部:

<%@ Page Language="C#" CodeFile="MyPage.aspx.cs" Inherits="MyPage" %> 

的屬性的CodeFile代表的物理文件爲後面的代碼使用。 Inherits屬性表示將爲後面的代碼繼承的部分類。

所以,如果你在代碼中重命名你的部分類的背後,你必須在繼承屬性,以及將其重命名。

+0

啊,我錯過了那一點。感謝您的解釋! – MartinH 2013-04-08 07:18:34

0

ASP.NET是創建由兩個部分web站點一個技術:HTML描述頁面的樣子和code-behind,確定您的控件對用戶輸入的響應方式。
當創建新的網絡表單時,ASP.NET爲您提供了一個模板,它可以初始化您的所有代碼,以便開始處理它。
所以你不應該手動改變提供的類的名字,而應該在開始時選擇一個好名字。否則你很容易混淆ASP.NET,它將無法將這兩部分合併到一個網頁中。
Here是關於ASP.NET的文章,介紹該模型及其工作原理。

+0

根據馬修的回答,這是不正確的? – MartinH 2013-04-08 07:31:30

+0

是的,這是正確的,什麼mathieu說!我在談論的是'ASP.NET'爲你提供了一切所需,所以不需要這樣的改變以及幕後發生的事情。 – 2013-04-08 07:44:14

+0

感謝您的回覆。我知道.NET爲我的生活做了很多工作。但我總是想更多地瞭解一些東西的內部運作,以完成我的理解:) – MartinH 2013-04-08 07:55:11