我已經寫了一個在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原則(我不認爲!)。思考?
感謝