2017-10-10 10 views
1

私はasp.net mvcアプリケーションを持っています。検索フォームがあり、ユーザーが本当に長い文字列で検索することがあります。クエリパラメータの長さには制限があるので、私は以下を行った。IE 11では、「新しいタブページ」がWebアプリケーションで404エラーを引き起こしています

  1. このフォームはPOSTメソッドとして作成しました。
  2. 私はMVCコントローラでこのページを "POST"要求に対してのみ提供すると述べました。

これはすべてのブラウザで完全に機能しています。通常のIEは次のシナリオで問題を引き起こしています:)

ユーザーが検索機能を頻繁に使用している場合、IEは結果ページを「新しいタブ」ページのタイルに頻繁に追加します(Screen shotを参照してください)。結果ページはPOSTだけなので、ユーザーがタイルをクリックするたびに404エラーが表示され、ユーザーはこれを迷惑に思います。

IEにこの特定のページをお気に入りのタイルに追加しないように指示するメタタグまたはJavaScriptがありますか?または、検索ページの代わりにホームページをタイルに追加しますか?

注:GETリクエストを許可すると、404エラーは消えてしまいますが、私はそれをしたくありません。それ以外の場合は、これを処理してページをリダイレクトする必要があります。

編集:私はグーグルを試してみましたが、私はこれがあなたのPOSTアクションであると仮定すると、任意の有用な情報

+0

これはブラウザ設定のように見えるので、変更することはできません。誰かが頻繁に訪問したページを使用してクリックした場合に結果を処理できる適切なURLに投稿が行われた後、AJAX呼び出しを行い、リダイレクトすることができます。 – d3l33t

+0

コメントありがとうございます! @ d3l33t。私はダニエルの提案に行くと思う。 – techkarthiks

答えて

0

を見つけることができませんでした:

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

    return View("Results", results); 
} 

あなたは動詞は次のようにGET使用して別のアクションメソッドを追加することができます。

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

このように、ユーザーがタイルをクリックすると、検索ページにリダイレクトされ、検索フォームに入力を開始します。

+0

ダニエルありがとう。私は、発生ごとに処理するのではなく、一般的な方法でこれを処理することを考えています。しかし今のところ、これは私が得た最高のものです。 – techkarthiks