2013-08-24 29 views
1

我試圖測試下面的代碼。這是一個彙總代碼。在mvc/Controller中獲取本地URL不能識別本地url

string url = filterContext.HttpContext.Request.Url.ToString(); 
if (Url.IsLocalUrl(url)) 
     { 
      return Redirect(url); 
     } 
     else 
     { 
      return RedirectToAction("Index", "Home"); 
     } 

在這段代碼是從上下文中獲取URL但在我的原代碼,它傳遞給控制器​​行動字符串從授權過濾器,看起來像在Debug.Write http://localhost:53249/Products。但IF不滿意,該網址是本地URL可以有人解釋我做錯了什麼。

回答

1

解決它,我猜你只需要爲赤HttpRequest.IsLocal

+0

感謝Felipe,正是我在找的。 –

0

將returnUrl傳遞給Url.IsLocalUrl()而不是當前的請求url上下文。 您將無效的URL傳遞給Url.IsLocalUrl()。

+0

那句話實際上是在過濾器,而不是在控制器中。 –

2

使用下面的句子

string url = filterContext.HttpContext.Request.Url.PathAndQuery;