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