asp.net mvc 实现 Server.Transfer

 public class TransferToRouteResult : ActionResult
{
public string RouteName { get; set; }
public RouteValueDictionary RouteValues { get; set; }
 
public TransferToRouteResult(RouteValueDictionary routeValues)
: this(null, routeValues)
{
}
 
public TransferToRouteResult(string routeName, RouteValueDictionary routeValues)
{
this.RouteName = routeName ?? string.Empty;
this.RouteValues = routeValues ?? new RouteValueDictionary();
}
 
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
throw new ArgumentNullException("context");
 
var urlHelper = new UrlHelper(context.RequestContext);
var url = urlHelper.RouteUrl(this.RouteName, this.RouteValues);
 
context.HttpContext.Server.TransferRequest(url, true);
}
}
 
public static class ControllerExtensions
{
public static TransferToRouteResult TransferToAction(this Controller controller, ActionResult result)
{
return new TransferToRouteResult(result.GetRouteValueDictionary());
}
}

 

posted @ 2014-08-07 16:24  浪潮之巅  阅读(624)  评论(0)    收藏  举报