每次請求在 Controller 基類/ActionFilter 中:
public class RouteTrackAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
var rd = filterContext.RouteData;
// 存入 TempData(一次性,下次請求自動刪除)
filterContext.Controller.TempData["LastRouteData"] = new {
Controller = rd.Values["controller"],
Action = rd.Values["action"],
Id = rd.Values["id"]
};
base.OnActionExecuting(filterContext);
}
}
後續請求讀取:
var last = TempData["LastRouteData"] as dynamic;
// 或 Session["LastRouteData"] 長期保留