2017-10-10 26 views
1

我有一個asp.net mvc應用程序。有一個搜索表單,有時候用戶用很長的字符串搜索。由於查詢參數長度有限制,我做了以下操作。在IE 11中,「新標籤頁」在Web應用程序中導致404錯誤

  1. 我已將此表格設置爲POST方法。
  2. 我在MVC控制器中提到只爲「POST」請求提供此頁面。

這在所有瀏覽器中都能正常工作。像往常一樣,IE在以下場景中導致問題:)。

如果用戶使用的搜索功能更加頻繁,IE是增加的結果頁面中的「新選項卡」頁下的頻繁區塊(請參閱Screen shot)。由於結果頁面僅是POST,所以無論用戶何時單擊該圖塊,它都會給出404錯誤,並且用戶對此感到惱火。

是否有任何元標記或JavaScript告訴IE不要將此特定頁面添加到最喜歡的瓷磚?或者將主頁添加到磁貼而不是搜索頁面?

注:我知道如果我允許GET請求,404錯誤將消失,但我不想這樣做。否則,我必須處理這個並重定向頁面。

編輯:我試圖谷歌,但我找不到任何有用的信息

+0

這看起來像一個瀏覽器設置,所以你不能改變它。如果有人使用頻繁訪問的頁面進行點擊,則可能可以在發佈帖子到適當的URL後執行AJAX調用並重定向。 – d3l33t

+0

感謝您的評論! @ d3l33t。我想我會選擇丹尼爾的建議。 – techkarthiks

回答

0

假設這是您的POST操作:

[HttpPost] 
public ActionResult Search(string p) 
{ 
    var results = SearchResults(p); 

    return View("Results", results); 
} 

你可以用動詞得到這樣添加另一種操作方法:

[HttpGet] 
public ActionResult Search() 
{ 
    return View(); 
} 

這樣,如果用戶點擊了圖塊,它們將被重定向到搜索頁面,準備開始在搜索表單中輸入內容。

+0

謝謝丹尼爾。我正在考慮以通用的方式處理這個問題,而不是每個事件的處理基礎。但截至目前,這是我得到的最好的。 – techkarthiks

相關問題