我正在寫一個管理幾個子站點的區域,幾乎所有的功能將在每個站點上相同(添加/編輯/刪除頁面等),我的存儲庫實例化SiteIdentity因此所有的數據訪問方法都是不可知的。我現在的問題是試圖讓我的行動方法也是不可知的。發送一個參數給控制器在ASP MVC 2
我想使用的URL模式是沿着線:
"ExternalSite/{identity}/{controller}/{action}/{id}"
天真的方法是讓每個動作,像是身份參數,但這意味着必須通過這個到我的倉庫在每個動作上以及將它包含在ViewData中的幾個UI元素。我寧願在控制器中發生這種事情,比如在其構造函數中。
這樣做的最好方法是什麼?目前我能想到的最好的方法是嘗試從RouteData字典中查找並投射標識,但我的一部分感覺應該有更優雅的解決方案。
OnActionExecuting似乎是最好的辦法了方向。 – Chao
爲了進一步擴展,我最終在控制器上創建了一個方法來設置Identity相關的屬性,爲此方法創建了一個接口,並讓actionfilter調用了方法。這使我能夠針對不同的控制器有不同的邏輯。 – Chao