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

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

為 ASP.Net MVC 站點創建 customBaseController?

為 ASP.Net MVC 站點創建 customBaseController?

C#
UYOU 2021-08-29 17:56:45
在我正在處理的項目中,我發現在每個操作的開始和結束時,我都有相同的代碼來檢索,然后將對象存儲在 TempData[] 中。所有操作之間的代碼都是一致的,所以我想知道創建一個基本控制器類來執行冗余重構并將對象存儲在 TempData[] 中是否合理?有沒有更聰明的方法?我目前的代碼:public ActionResult Index(StepOne data){    var customer = TempData["customer"] as Customer;    //do stuff with customer    TempData["customer"] =customer;    return View();}
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

為什么不創建一個名為 BaseController 或其他控制器的控制器,然后像下面編寫的代碼一樣從這個 BaseController 繼承其他控制器。


//Your base controller

public class BaseController : Controller

{

    //This will be executed after every action call on the controllers inherited from this BaseController.

    //You can use OnActionExecuting in case you want the execution before the actions execution in your other controllers.

    protected override void OnActionExecuted(ActionExecutedContext filterContext)

    {

        Controller controller = filterContext.Controller as Controller;

        if (controller != null)

        {

            var customer = controller.TempData["customer"] as Customer;


            //do stuff with customer


            controller.TempData["customer"] = customer;

        }

    }

}


//Then your other controller

public class HomeController : BaseController

{

    public ActionResult Index(StepOne data)

    {

        //You can get your TempData here too.

        var customer = TempData["customer"] as Customer;

        return View();

    }

}

如果它不起作用或者您需要將此代碼更改為某種其他類型的行為,請告訴我。


查看完整回答
反對 回復 2021-08-29
  • 1 回答
  • 0 關注
  • 175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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