|
系列文章導航:
[一步一步MVC]第一回:使用ActionSelector控制Action的選擇
[一步一步MVC]第二回:還是ActionFilter,實現對業務邏輯的統一Authorize處理
[一步一步MVC]第四回:漫談ActionLink,有時“胡攪蠻纏”
[一步一步MVC]第五回:讓TagBuilder豐富你的HtmlHelper
ActionFilter一定是MVC控制中對于Action控制中最值得研究的玩意,在項目實際中我們不可避免的使用例如:
- HandleError
- Authorized
- OutputCache
在本文中,我們應用Action Selector方式進行Action的選擇,想要闡述清楚這個問題,我們從實際的問題出發來關注。
實際的問題,從和老趙的對話了解
我們有個業務室這樣的:系統有不同的角色,例如Admin、Client、Agent。假設有個功能叫Book/List,那么就對應了一個List這樣的View和action為List這樣的BookController,現在,我們的情況是對于不同的角色,所對應的List是不同的。Admin看到的Book/List和Client看到的Book/List是不同的,那么通過Url:http://anytao.com/Book/List/123,不同的角色如何處理,差不多就這樣,是否清楚。
我:那么對于同一Action如何更好的return到不同的view?
老趙:具體問題是什么呢?
我: 我現在能想到的是在Action中根據角色Return到不同的View,簡單的辦法就是在List Action根據角色Return到不同的View。問題是,還有什么更好的辦法。
老趙:準備n各action,分別加上自定的ActionSelector,不要用一個Action,不用一個Action然后在里面if。
[OnlyInRole("admin")]
[ActionName("List")]
ListForAdmin()
{
}
[OnlyInRole("user")]
[ActionName("List")]
ListForUser()
{
}
NET技術:[一步一步MVC]第一回:使用ActionSelector控制Action的選擇,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。