2014-10-30 39 views
0

我有一個ASP.NET webforms應用程序,並且需要將表單添加到將發佈到外部URL(付款處理提供程序)的頁面。表單需要包含特定的隱藏輸入,其中之一是表單數據的散列字符串表示。使用PostBackUrl提交表格的特定部分

我明白給定的webforms的限制,我不能在主要<form runat="server" />內嵌套第二種形式。但是,我沒有選擇在主表單之外找到我的表單(由於CMS內置了CMS)。

我知道我可以使用帶有PostBackUrl屬性的ASP.NET Button控件,該屬性允許表單發佈到特定的URL。但是,這會發布頁面上的每個表單元素,包括__VIEWSTATE,__EVENTTARGET等。

這不是期望的行爲。我只想提交具體的數據。此外,這使得難以(不可能?)生成表單的哈希表示,因爲這將不得不包括視圖狀態等。

我也沒有選擇從代碼後面發佈數據,因爲客戶端預計將繼續在目標網址進行互動。

我在這裏有什麼選擇嗎?這一定是可能的,但互聯網搜索已經很少返回。

UPDATE:我正在尋找不依賴於Javascript的解決方案。

回答

0

一種選擇是使用ajax。只需用它發佈你需要的數據,你甚至不需要重定向或任何東西。你會在字面上控制一切(當然,只要用戶已經打開了javascript)。

+0

謝謝,但這不能是一個JS-only解決方案。限制在線支付僅限於支持JS的用戶是不合理的。 – getsetcode 2014-10-31 08:59:57

+0

@getsetcode,那麼在這種情況下,我怕你剛剛達到了webforms的限制..你有沒有考慮切換到MVC?這可能會讓你的生活變得更輕鬆。 – walther 2014-10-31 15:03:43

+0

我非常喜歡,但我們使用的CMS限制了我的webforms。令人驚訝的是,沒有答案,但感謝您的建議。 – getsetcode 2014-11-03 09:24:39

0

您可以使用ajax更新面板。 把ASP:ScriptManager的

<asp:scriptManager></asp:scriptManager> 

    <asp:updatePanel runat="server"> 
     <contentTemplate> 
       your controls to be submitted to next page 
      <asp:button><asp:button> 
     </contentTemplate> 
    </asp:updatePanel> 

,並置於其他控件的UpdatePanel外面。

+0

謝謝,但這不能是一個JS-only解決方案。限制在線支付僅限於支持JS的用戶是不合理的。 – getsetcode 2014-10-31 09:00:29