2009-05-29 28 views
5

我有一個Web應用程序,它有一個從數據庫加載內容的頁面。我希望能夠在動態內容中放置表單,但.net不會讓內部表單執行動作。有沒有辦法讓這個或其他方式我可以在動態內容頁面上獲取表單?ASP.net上的表單標籤頁

謝謝。

- EDIT--

我想我需要澄清一些事情。這是從數據庫加載內容的aspx頁面。據我所知,我從數據庫中拉出的文本並粘在標籤中永遠不會被.net wp編譯或處理,因此我不能使用後面的代碼來解決此問題。

回答

4

只能有頁面(ASP窗體)的一種形式;你必須以某種方式使用該表格。

要澄清,只能處理一個表單。

+13

愚蠢,愚蠢,webforms – annakata 2009-05-29 15:25:34

1

不適用於webforms,no。您必須使用連接到ButtonLinkButton的事件處理程序在一個完整頁面表單中工作。幸運的是,這是很容易做到:

foo.aspx:

... 
<asp:TextBox id="txtFoo" runat="server" /> 
<asp:Button id="btnFoo" runat="server" onclick="btnFoo_Click /> 
... 

foo.aspx.cs:

... 
protected void btnFoo_Click(object sender, EventArgs e) 
{ 
    string s = txtFoo.Text; 
    // do something with s 
} 
... 
0

你要麼通過添加一個服務器端點擊事件處理程序來處理你想成爲「子表單」提交按鈕(這是web formas如何處理同一頁面上的多個提交類型buutons)或者,如果你不想一個完整的回發

0

我碰到這個問題之前運行做soemthing巧妙搭配AJAX。我所做的一個解決方法是將我的代碼放置在asp:Panel內部,讓我的操作完成。通過面板,您可以將「DefaultButton」的屬性設置爲面板內的按鈕,然後單擊按鈕(或按「enter」)將觸發該按鈕的單擊事件。當我有一個包含唯一允許的asp:Form的母版頁時,通過按Enter提交「表單」時,我發現這非常方便。

希望這會有所幫助。

5

這是一個常見問題,當你想要一個非回發形式到第三方網站(例如貝寶按鈕)。

問題發生是因爲HTML不允許您在窗體中創建窗體,並且大多數ASP.NET頁面在HTML(或主頁面)中都有一個<form runat="server" />「high up」。

我最喜歡的解決辦法是隱藏「高達」的形式標記,而仍然顯示的所有內容。然後你可以隨意轉換任何你想要的身體標籤。如果您動態執行此操作,則可以逐頁選擇哪些頁面具有自定義表單。

我創建了一個名爲GhostForm.cs的類來處理這個問題。你可以在這裏閱讀所有關於它:

http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html

0

任何解決辦法將是哈克和非常難看。按照設計asp.net使用窗體標籤發佈和獲取數據。這就是爲什麼他們把它叫做Web窗體應用程序。 Html不允許嵌套窗體。你想要做的是在你的代碼中使用的WebRequest後面。

如果你試圖像PayPal按鈕的東西,你可以簡單地使用這樣的事情。

標記:

<div id="PayPalButtonContainer" runat="server"></div> 

代碼背後:

public static string GetPayPalButtonMarkup() 
    { 
     const string markup = @"https://www.paypal.com/cgi-bin/webscr 
            ?cmd=_xclick&business={0} 
            &item_name=Widget 
            &amount={1} 
            &currency_code=USD"; 
     return markup; 
    } 

    PayPalButtonContainer.InnerHtml = string.format(GetPayPalButtonMarkup,"YOUR PAYPAL USER NAME", "YOUR PRICE VALUE"); 
0

當我第一次遇到這個問題來了,我發現最簡單的解決方案對我來說是簡單的複製和粘貼母版頁,並給它稍有不同的名稱,像:

SiteNameMasterPage  'Default page with FORM tag 
SiteNameMasterPageNF 'No Form tag 

然後根據不同羯羊我想ED FORM標記或者與否,只需更改母版鏈接我的內容,頁面的頂部,這樣

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteName.master" %> 
<%@ MasterType VirtualPath="~/SiteName.master" %> 
<!-- This masterpage has the default FORM tag --> 

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteNameNF.master" %> 
<%@ MasterType VirtualPath="~/SiteNameNF.master" %> 
<!-- This masterpage does NOT have the default FORM tag --> 

,然後在內容頁面,只要我想放置我的表單我可以包括<form>標記