2009-10-19 26 views
1

我正在開發一個網站(ASP.NET Webform與C#),我有一個<button>元素。爲什麼<button>在Firefox/Chrome中使用「GET」,而在Opera中使用「POST」?

下面的代碼片段:

<a href="ThisPage.aspx" ID="myButtonID" runat="server"> 
    <button>Configure new trip</button> 
</a> 

當我使用Firefox或Chrome,這個代碼確實是 「GET」 在這個ThisPage.aspx。實際上,這就是我想要做的。

問題是,當我使用Opera時,相同的代碼會「POST」。有誰知道我該怎麼做才能讓這個按鈕和Opera一樣使用?

+3

這只是...不,不這樣做。按鈕不是鏈接,鏈接不是按鈕。 – yfeldblum 2009-10-19 11:48:43

回答

5

可能是因爲FF/Chrome處理點擊<a />標記,Opera會在<button />標記上執行該操作。

你在找什麼(我猜)是有一個<a />標籤renderes作爲一個按鈕?在這種情況下,必須在對如何風格的<a />標籤就像一個按鈕

你在做什麼是類似於添加一個文本框的定位標記一定程度,即語義上錯了良好tutortial看看this了。

+0

我會檢查一下。感謝您的回覆。 – XpiritO 2009-10-19 11:41:53

0

我猜它是在一個窗體標籤?

如果是這樣,請嘗試將表單的方法設置爲「get」。

+0

我的表單還有其他需要做「POST」的按鈕。難道沒有辦法訂購這個按鈕來代替「GET」嗎? – XpiritO 2009-10-19 11:33:14

+1

你不能把你的頁面放在一個巨大的形式。 – Breton 2009-10-19 11:38:40

+0

這是一個ASP.NET應用程序=>頁面是一個完整的窗體,它自動POST – veggerby 2009-10-19 11:43:02

0

如果你沒有做任何Ajax操作,並點擊按鈕有望導航到「ThisPage.aspx」,那麼我會考慮的造型元素<a> - 由@veggerby的建議 - 和去除<button> </button>元素。

但是,這可能會讓用戶感到困惑,因爲用戶可能不希望表單中的按鈕成爲導航元素。我傾向於保持窗體和控件在視覺上與頁面上的其他元素分離 - 也許使用<fieldset>

0

Firefox/Chrome如何提交「GET」?有沒有參數?如果你想鏈接到ThisPage.aspx然後只需要沒有按鈕就可以了。

表單可以是GET或POST,但不能同時包含兩者。因此,如果按鈕位於表單內,它將始終提交表單中的數據,並且應該使用表單上設置的任何方法。

也許你可以發佈實際的HTML輸出到瀏覽器,而不是ASP代碼?我有一種感覺,你可能會產生一種形式內的形式。在這種情況下,解決方案應儘可能將表格分開。

相關問題