获取mvc / Controller中的本地URL无法识别本地URL

时间:2013-08-24 14:11:15

标签: c# asp.net-mvc-4

我试图测试以下代码。这是一个汇总代码。

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

在此代码中,url是从上下文获取的,但在我的原始代码中,它从Authorize过滤器作为字符串传递给控制器​​操作,在Debug.Write中看起来像http://localhost:53249/Products。但是IF不满意网址是本地网址,有人可以解释我做错了什么。

3 个答案:

答案 0 :(得分:2)

使用以下句子解决它

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

答案 1 :(得分:1)

我猜您只需要检查HttpRequest.IsLocal

答案 2 :(得分:0)

将returnUrl传递给Url.IsLocalUrl()而不是当前请求url上下文。 您将无效网址传递给Url.IsLocalUrl()。