我已经写了一个在IFrame中运行的Asp.Net MVC应用程序。当我的一个控制器方法返回RedirectToAction()时,我希望顶级浏览器URL重定向到该地址,而不仅仅是我的IFrame。我会如何去做这件事?因为我在另一个网站内部运行,所以我需要将绝对URL传递给浏览器,即'http://parentsite.com/myapp/ {controller}/{action}'Asp .Net MVC RedirectToAction带绝对URL
我想这相当于将我的超链接的目标属性设置为'_top ',这样整个网站重定向(这将通过扩展HtmlHelper非常简单),但我怎么做我的服务器端重定向?
到目前为止,我的解决方案是重写OnResultExecuting,提取我打算重定向到的URL,然后重定向到一个Frame Breaker View,将我原本打算重定向的URL作为参数传递。帧断路器视图只是写出一些JavaScript,将顶级浏览器URL设置为我的原始URL。这种方法有一个额外的HTTP请求比我想,但至少不违反任何MVC原则(我不认为!)。思考?
感谢