在IE 11中,“新标签页”导致Web应用程序中出现404错误

时间:2017-10-10 18:47:12

标签: asp.net-mvc internet-explorer-11

我有一个asp.net mvc应用程序。有一个搜索表单,有时用户搜索非常长的字符串。由于查询参数长度有限制,我做了以下内容。

  1. 我已将此表单设为POST方法。
  2. 我在MVC控制器中提到只为“POST”请求提供此页面。
  3. 这在所有浏览器中都运行良好。像往常一样IE在以下场景中引起问题:)。

    如果用户更频繁地使用搜索功能,IE会将结果页面添加到频繁出现的“新标签页”的图块中(请参阅Screen shot)。由于结果页面仅为POST,因此每当用户单击该磁贴时,就会出现404错误,并且用户对此感到恼火。

    是否有任何元标记或javascript告诉IE不要将此特定页面添加到收藏夹磁贴?或者将主页添加到磁贴而不是搜索页面?

    注意:我知道如果我允许GET请求,404错误将消失,但我不想这样做。否则,我必须处理此问题并重定向页面。

    编辑:我试过谷歌,但我找不到任何有用的信息

1 个答案:

答案 0 :(得分:0)

假设这是你的POST动作:

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

     return View("Results", results);
}

您可以使用动词GET添加另一个动作方法,如下所示:

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

这样,如果用户点击了图块,他们就会被重定向到“搜索”页面,准备开始在搜索表单中输入内容。