为什么Response.Redirect与新的RedirectResult()之间存在差异?

时间:2011-08-11 11:15:25

标签: asp.net-mvc model-view-controller

当我像这样重定向时

 protected override void OnActionExecuting(ActionExecutingContext filterContext)
 {
      filterContext.Result = new RedirectResult("https://mydom.com");
 }

所以浏览器重定向到 http://mydom.com/httpS://mydom.com

但如果我这样重定向

 protected override void OnActionExecuting(ActionExecutingContext filterContext)
 {
      var res = filterContext.HttpContext.Response;
      filterContext.Result = res.Redirect("https://mydom.com");
 }

因此浏览器会正确地重定向到 https://mydom.com

为什么存在差异?

1 个答案:

答案 0 :(得分:3)

首先,RedirectResult是一个类,而HttpResponse.Redirect是一个方法。前者将用户重定向到指定的URI,后者会将您重定向到给定的URL。要查看网址和URI see here之间的差异。

希望有所帮助