28
在MVC 3中,可以確定操作是POST還是GET方法的結果?我知道你可以用[HttpPost]和[HttpGet]來裝飾動作,如果其中一個發生,就會觸發一個特定的動作。我想要做的是將這些屬性關閉並通過編程確定哪一個引起了操作。檢測操作是POST還是GET方法
原因是,由於我的搜索頁面的架構,我將搜索模型存儲在TempData中。最初的搜索會導致POST到搜索結果頁面,但分頁鏈接都只是「/ results/2」的鏈接(對於第2頁)。他們檢查TempData,看看模型是否在那裏使用。
當有人使用後退按鈕轉到搜索表單並重新提交時,會導致問題。它仍然在TempData中選擇模型,而不是使用新的搜索條件。所以如果它是一個POST(即有人剛剛提交了搜索表單),我想首先清除TempData。
對於它的價值,我也偏向於始終使用GET請求進行搜索,並將所有參數放在查詢字符串中。它使書籤,分頁和其他問題更容易處理。 – 2011-05-06 17:03:43
感謝您的快速響應。我會這樣做,但搜索表單實際上非常複雜,有很多組合框(多選)等。實際上很容易超過最大查詢字符串長度。 – Scott 2011-05-06 17:15:26