亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從控制器內部獲取控制器和動作名稱?

從控制器內部獲取控制器和動作名稱?

C#
慕哥9229398 2019-11-23 13:18:08
對于我們的Web應用程序,我需要保存獲取和顯示的項目的順序,具體取決于視圖-確切地說,是生成視圖的控制器和操作(當然還有用戶ID,但這不是重點)。我認為不僅要在每個控制器動作中自己給出一個標識符(以便將其用于與視圖有關的數據庫輸出排序),我認為通過從其獲取的控制器和動作方法自動創建該標識符將更安全,更輕松。從。如何從控制器的action方法中獲取控制器的名稱和動作?還是我需要為此反思?我想這很容易,謝謝您!
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

可能有用。我需要在控制器的構造函數中執行操作,該操作出現在MVC生命周期的這一點,this尚未初始化,并且ControllerContext = null。我沒有研究MVC生命周期并找到要覆蓋的適當函數名稱,而是在中找到了操作RequestContext.RouteData。


但是,為了這樣做,就像HttpContext構造函數中的任何相關用法一樣,您必須指定完整的名稱空間,因為this.HttpContext還沒有初始化。幸運的是,它似乎System.Web.HttpContext.Current是靜態的。


// controller constructor

public MyController() {

    // grab action from RequestContext

    string action = System.Web.HttpContext.Current.Request.RequestContext.RouteData.GetRequiredString("action");


    // grab session (another example of using System.Web.HttpContext static reference)

    string sessionTest = System.Web.HttpContext.Current.Session["test"] as string

}

注意:可能不是訪問HttpContext中所有屬性的最受支持的方法,但是對于RequestContext和Session,它似乎在我的應用程序中可以正常工作。


查看完整回答
反對 回復 2019-11-23
  • 3 回答
  • 0 關注
  • 501 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號