ASP.NET Web應用程式修改頁面Inherits樣本

來源:互聯網
上載者:User

 

<@page 中 Codebehind 、Inherits 和aspx的關係

CodeBehind
指定包含與頁關聯的類的已編譯檔案的名稱。該屬性不能在運行時使用。

說明:
提供此屬性是為了與以前版本的 ASP.NET 的相容,以實現程式碼後置功能。在 ASP.NET 2.0 版中,應改用 CodeFile 屬性指定該源檔案的名稱,同時使用 Inherits 屬性指定該類的完全限定名稱。
 

CodeFile
指定指向頁引用的程式碼後置檔案的路徑。此屬性與 Inherits 屬性一起使用可以將程式碼後置源檔案與網頁相關聯。此屬性僅對編譯的頁有效。

Inherits

定義供頁繼承的程式碼後置類別。它可以是從 Page 類派生的任何類。此屬性與 CodeFile 屬性一起使用,後者包含指向程式碼後置類別的源檔案的路徑。Inherits 屬性在使用 C# 作為頁面語言時區分大小寫,而在使用 Visual Basic 作為頁面語言時不區分大小寫。

如果 Inherits 屬性不包含命名空間,ASP.NET 將檢查 ClassName 屬性是否包含命名空間。如果包含,ASP.NET 將試圖使用 ClassName 屬性的命名空間載入 Inherits 屬性中引用的類。(這假定 Inherits 屬性和 ClassName 屬性使用同一命名空間。)

有關程式碼後置類別的更多資訊,請參見 ASP.NET 網頁代碼模型。

ClassName
一個字串,指定在請求頁時將進行動態編譯的頁類的名稱。此值可以是任何有效類名,並且可以包括完整類名。如果未指定該屬性的值,則已編譯頁的類名將基於頁的檔案名稱並使用預設命名空間 ASP。如果指定的 ClassName 屬性的值沒有完整的命名空間,將結合使用命名空間 ASP 與指定的類名以建立完整類名。

其他頁可以通過使用 @ Reference 指令來引用分配給第一頁的類名。

說明:
可以使用 .aspx 頁的完全限定類名在程式碼後置頁類中引用關聯的 .aspx 頁類的成員。但是,如果先行編譯啟用了原始碼保護的網站,則程式碼後置頁類與 .aspx 頁類不在同一程式集中。因此,程式碼後置檔案中引用的類將不起作用。有關先行編譯的更多資訊,請參見 ASP.NET 先行編譯概述。
 

Src
指定包含連結到頁的代碼的源檔案的路徑。在連結的源檔案中,可以選擇將頁的編程邏輯包含在類中或 代碼聲明塊中。

可以使用 Src 屬性將產生提供者連結到頁。有關更多資訊,請參見 BuildProvider 類。另外,在低於 2.0 版的 ASP.NET 中,Src 屬性是另一種將程式碼後置檔案連結到頁的方法。在 ASP.NET 2.0 中,將程式碼後置源檔案連結到頁的首選方法是使用 Inherits 屬性來指定類,並使用 CodeFile 屬性來指定該類的源檔案的路徑。

demo

 

代碼

Inherits 屬性為命名空間(liuxiang)+類名稱(InheritClass)  InheritClass需繼承Page
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="liuxiang.InheritClass" %>

<!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" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
            <asp:Label ID="labName" runat="server" ></asp:Label>
        <asp:Button ID="btnName"      runat="server" Text="確定" onclick="Button1_Click"/>
    </div>
    </form>
</body>
</html>
Default.aspx.cs 中的代碼 由於<%@ Page 中Inherits指向的是類InheritClass所以在代碼檔案中無法引用到頁面中的任何控制項
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace liuxiang
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          
        }
       
    }
}

InheritClass代碼 繼承System.Web.UI.Page 可直接引用控制項

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
namespace liuxiang
{
    public partial class InheritClass : System.Web.UI.Page
    {
        //TextBox txtName;
        //Label labName;
        //Button btnName;
        protected void Button1_Click(object sender, EventArgs e)
        {
            labName.Text = this.txtName.Text;
            
        }
    }
}

 這種方式可以有個好處能把頁面中所有的代碼都封裝到類檔案中然後可以對這個dll進行加殼這樣對代碼可以進行一個有效保護

不過這種方式在asp.net web應用程式中可執行!但是在如果是Web網站這種方式好像不行一直提示

 ASPNET: 請確保此代碼檔案中定義的類與“inherits”屬性匹配,並且該類擴充的基類(例如 Page 或 UserControl)是正確的。

這個錯誤!

還望那位高手指教~~~~~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.