[英]How to submit data twice on an ASP.NET page
我有一個網頁。 頂部是<form id="form1" runat="server">
內的搜索欄。
我還想在同一頁面上添加一個表單,該表單將允許用戶注冊其詳細信息。 問題,ASP.NET每頁只允許一種形式。
我如何實現我的目標? 任何解決方法?
將您要調用的代碼放在不同的按鈕單擊事件中。 因此,如果單擊搜索按鈕,則僅運行搜索按鈕單擊事件中的代碼。 如果單擊注冊按鈕,則僅運行注冊單擊事件中的代碼。
這是一個例子:
protected void Page_Load(object sender, EventArgs e) {
// Common code
}
protected void btnSearch_Click(object sender, EventArgs e) {
// Search code
}
protected void btnRegister_Click(object sender, EventArgs e) {
// Register code
}
雙擊設計器中的按鈕,將在后面的代碼中創建單擊事件。
您在頁面上只能有一個服務器端表單。
如果可以選擇的話,您可以runat="server") with a separate action - this POST can go to a different page, where you will have to access
的客戶端表單(無需runat="server") with a separate action - this POST can go to a different page, where you will have to access
Request.Form`來檢索發布的值。 。
另一個選擇是使用單獨的按鈕與不同的事件處理程序一起發布。
您可以使用簡單的HTML表單方法,但是始終存在將整個頁面發回的問題。 或使用mvc:
正如@Simon的答案中已經提到的那樣,在代碼中很容易擁有多個單擊處理程序,以在頁面上准確地處理所需的內容-這是解決“缺少多種形式”問題的最簡單方法。
在這種情況下,非常有用的是<asp:Panel>
控件的DefaultButton
屬性。 這意味着您應該在頁面的多個區域中使用(例如) <asp:TextBox>
控件,並且每個區域都具有特定的<asp:Button>
關聯,如果焦點位於文本框之一中,則按Return鍵或Enter將導致單擊DefaultButton
。
例如...
<asp:Panel runat="server" DefaultButton="btnSearch">
Search: <asp:TextBox runat="server" id="txtSearcn"/>
<asp:Button runat="server" id="btnSearch" Text="Search" OnClick="btnSearch_Click"/>
</asp:Panel>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.