在ASP .NET MVC中,我尝试从Controller Action方法执行重定向,该方法在同一控制器中调用单独的Action方法。效果很好,可以在chrome工具的“网络”标签中进行跟踪。
我想强制重定向以更改用户浏览器中的URL,并实际上重定向到另一个页面。但是,在Google Chrome浏览器的“网络”标签中,我可以看到请求正在处理,但未更改显示的URL。
在google chrome中跟踪请求时,第一次加载该页面时,请求显示为蓝色,但随后的请求显示为灰色/正常彩色行。我不确定是否需要更改请求的属性,以使其强制在浏览器中更改URL,并在chrome dev工具的“网络”标签中显示为蓝色,如下所示:
我尝试使用以下方法进行重定向。所有这些示例都重定向到我的控制器中正确的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!
}