HOW TO:將 Web Form 網頁轉換成 ASP.NET 使用者控制項
更新:2007 年 11 月
如果您已經開發 ASP.NET Web 網頁,並且要在應用程式中存取它的功能,您可以對網頁做一些小幅度的修改,將它變更為使用者控制項。
若要將單一檔案 ASP.NET Web 網頁轉換為使用者控制項
重新命名讓控制項的副檔名為 .ascx。
從網頁移除所有 html、body 和 form 項目。
移除 @ Control 指示詞的所有屬性,除了 Language、AutoEventWireup (如果有的話)、CodeFile 和 Inherits。
在 @ Control 指示詞中包含 className 屬性。這可以讓使用者控制項在加入網頁時強型別。
若要將程式碼後置 ASP.NET Web 網頁轉換為使用者控制項
重新將 .aspx 檔的副檔名命名為 .ascx。
重新命名程式碼後置檔案,以便依照程式碼後置檔案所使用的程式設計語言而定,將副檔名變更為 .ascx.vb 或 .ascx.cs。
開啟程式碼後置檔案,然後將所繼承的 Page 類別變更為 UserControl。
請在 .aspx 檔中進行以下步驟:
在 @ 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/>