从ASP NET MVC控制器重定向不会更改浏览器中的URL

时间:2018-07-19 16:00:53

标签: asp.net-mvc asp.net-web-api google-chrome-devtools url-redirection

在ASP .NET MVC中,我尝试从Controller Action方法执行重定向,该方法在同一控制器中调用单独的Action方法。效果很好,可以在chrome工具的“网络”标签中进行跟踪。

我想强制重定向以更改用户浏览器中的URL,并实际上重定向到另一个页面。但是,在Google Chrome浏览器的“网络”标签中,我可以看到请求正在处理,但未更改显示的URL。

在google chrome中跟踪请求时,第一次加载该页面时,请求显示为蓝色,但随后的请求显示为灰色/正常彩色行。我不确定是否需要更改请求的属性,以使其强制在浏览器中更改URL,并在chrome dev工具的“网络”标签中显示为蓝色,如下所示:

enter image description here

我尝试使用以下方法进行重定向。所有这些示例都重定向到我的控制器中正确的Action,并通过模型中的正确值传递。但是,它们不会更改URL。

使用RedirectToRoute

return RedirectToRoute("SuccessRedirect3DS", returnModel);

使用RedirectToRoutePermanent

return RedirectToRoutePermanent("SuccessRedirect3DS", returnModel);

使用RedirectToAction(还尝试了RedirectToActionPermanent)

return RedirectToAction("SuccessRedirect3DS", "Home", returnModel);

是否可以使用这些方法中的任何一种来更改URL,还是我需要以稍微不同的方式来执行此操作?我正在调用的控制器方法是GET方法,该方法从URL获取提供的值。

[System.Web.Mvc.HttpGet]
public async Task<ActionResult> SuccessRedirect3DS([FromUri] Model stuff) {
    // We get here and the model values are OK, but the URL/page in browser did not change!
}

0 个答案:

没有答案