我的ActionHandler.ashx文件應該在進入ProcessRequest時發佈,context.Request.RequestType始終爲「GET」。提交給HttpHandler的結果是RequestType GET而不是POST
背景: 這個HttpHandler的當前工作正常(即單擊電子郵件中的鏈接將導致進入我的ActionHandler.ashx和查詢字符串被正確處理)。例如:
https://mdwdata/CorporateBrain/ActionHandler.ashx?Action=MarkComplete&ID=1024~nzmewoojgnn&CUID=13
顯示爲圖像正下方馬克完成該鏈接的URL:
但現在我想通過在previous SO thread下面這個建議改進它:
「在電子郵件的正文中,不是發送鏈接,而是包含一個HTML表單,其中包含一個執行回發到您的服務器的按鈕。」
問題摘要:當我點擊提交按鈕,我的處理程序與動詞進入GET不是POST(因此,我有Request.Form集合中沒有訪問隱藏表單數據
這裏。是電子郵件正文的一個片段(圖片)
如果我可以通過提交將隱藏的表單變量發佈到我的處理程序,那麼我當然會刪除這些鏈接在調試器中,我驗證了表單數據並它看起來不錯我:
我加入這行到我的web.config文件:
<add path="ActionHandler.ashx" verb="GET,POST" type="System.Web.UI.SimpleHandlerFactory" validate="true" />
而且,我的電子郵件客戶端雷鳥是。
什麼會導致請求是GET而不是POST?
[HTML電子郵件中的表單](https://www.campaignmonitor.com/blog/post/2435/how-forms-perform-in-html-emai/)?不確定雷鳥具體,但從回來(大約在2007年)適用的警告。你能在客戶端查看源代碼嗎? – EdSF 2014-10-17 01:43:01
@EdSF - 是的,我也有點不確定。只需按照原始帖子中前面提到的上一個SO線程的建議。這種方法需要適用於所有的電子郵件客戶端。我沒有看到在Thunderbird客戶端中「查看源代碼」的方法。我會仔細研究你提供的鏈接(似乎與上面提到的建議相矛盾)。我在想,「概念」是好的,也許我只是缺少一些特殊的web.config條目等。 – 2014-10-17 14:50:52