我真的不知道應該用什麼標題來描述我的問題。爲了簡化我的問題。這是我的測試。我從頭開始創建一個mvc3網站。然後我添加名爲「admin」的區域。在管理員內部,我有一個名爲「搜索」的控制器,並具有裝飾的「授權」屬性。然後我改變了我的Global.ascx.cs路由設置,以追加我的控制器命名空間。現在我開始我的測試。MVC3區域+授權屬性+角色奇怪問題
問題1
當我訪問到http://localhost:xxx/Search頁,它重定向我回/帳號/登錄頁面,這讓我第一次迷惑,爲什麼它重定向我到登錄頁面?根據我的理解,它根本不應該到達管理員搜索控制器。如果我刪除了授權屬性,它會顯示黃色屏幕,說我找不到預期的視圖。
問題2
如果我添加授權與角色,例如屬性(角色=「管理」),然後我再次嘗試訪問搜索頁面,無論登錄成功與否,我總是會重定向回登錄頁面。爲什麼它不給我黃色的屏幕,因爲我試圖請求主站點中的搜索控制器索引視圖而不是管理區域的視圖。相當混亂。
我是MVC開發新手,有人可以給我一個關於我的問題的解決方案嗎?
感謝
Global.ascx.cs
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[]{"TestAreaRouting.Controllers"}
);
}
嗨達林謝謝你的解釋。但我仍然混淆了這一點。首先可以解釋爲什麼當我刪除授權屬性時,它不會掃描管理區域內的搜索控制器? – Vincent
@Vincent,建議的代碼不適合你嗎?你特別困惑的是什麼? –
順便提一句,達林,如果你有機會,你還可以幫助解釋我的另一個問題http://stackoverflow.com/questions/8219347/asp-net-mvc-allowhtml-bug-or-something-i-didnt-use-正確地 – Vincent