首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

ASP.NET MVC 獲取上一次請求 RouteData:Session/TempData 存儲當前路由供下次讀取

     編輯:程式設計疑難解答

方案

每次請求在 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"] 長期保留

注意

  • `TempData` 底層用 Session,默認**讀取即刪除**,適合「上一次」場景。
  • 若需跨多次請求,改用 `Session["LastRouteData"]` 並手動管理生命週期。
  • 不要直接持有 `RouteData` 對象(含請求上下文),**提取純值對象**存儲。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved