共用方式為


HOW TO:將 Web Form 網頁轉換成 ASP.NET 使用者控制項

更新:2007 年 11 月

如果您已經開發 ASP.NET Web 網頁,並且要在應用程式中存取它的功能,您可以對網頁做一些小幅度的修改,將它變更為使用者控制項。

若要將單一檔案 ASP.NET Web 網頁轉換為使用者控制項

  1. 重新命名讓控制項的副檔名為 .ascx。

  2. 從網頁移除所有 html、body 和 form 項目。

  3. @ Page 指示詞變更為 @ Control 指示詞。

  4. 移除 @ Control 指示詞的所有屬性,除了 Language、AutoEventWireup (如果有的話)、CodeFile 和 Inherits。

  5. 在 @ Control 指示詞中包含 className 屬性。這可以讓使用者控制項在加入網頁時強型別。

若要將程式碼後置 ASP.NET Web 網頁轉換為使用者控制項

  1. 重新將 .aspx 檔的副檔名命名為 .ascx。

  2. 重新命名程式碼後置檔案,以便依照程式碼後置檔案所使用的程式設計語言而定,將副檔名變更為 .ascx.vb 或 .ascx.cs。

  3. 開啟程式碼後置檔案,然後將所繼承的 Page 類別變更為 UserControl

  4. 請在 .aspx 檔中進行以下步驟:

    1. 從網頁移除所有 html、body 和 form 項目。

    2. @ Page 指示詞變更為 @ Control 指示詞。

    3. 移除 @ Control 指示詞的所有屬性,除了 Language、AutoEventWireup (如果有的話)、CodeFile 和 Inherits。

    4. 在 @ Control 指示詞中,將 CodeFile 屬性變更為指向重新命名的程式碼後置檔案。

  5. 在 @ Control 指示詞中包含 className 屬性。這可以讓使用者控制項在加入網頁時強型別。

範例

下列程式碼範例,示範了以原始形式呈現的單一檔案 ASP.NET Web 網頁,以及在轉換網頁後所產生的使用者控制項。

安全性注意事項:

這個範例有一個可接受使用者輸入的文字方塊,這可能會造成安全性威脅。ASP.NET Web 網頁預設會驗證使用者輸入,但不包含當中的指令碼或 HTML 項目。如需詳細資訊,請參閱指令碼攻擊概觀

<%@ Page Language="VB" %>
<html>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
    Enter Name: <asp:textbox id="Name" runat=server/>
    <asp:button Text="Enter" OnClick="EnterBtn_Click"
        runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Control Language="VB" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
<%@ Control Language="C#" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>

請參閱

工作

HOW TO:建立 ASP.NET 使用者控制項

概念

ASP.NET 使用者控制項概觀