[英]How do I get ASP.NET MVC to set a default Controller and Action for an Area?
我創建了一個帶有區域的新ASP.NET MVC項目,我試圖將控制器操作設置為默認控制器操作,如果用戶訪問該區域。
我添加了一個名為'Login'的區域,現在我有Areas/Login/
我添加了LoginController
。
我試圖設置此控制器在用戶導航到網站時被調用。 如果我輸入瀏覽器www.test.com/Login/Login
我可以訪問它但我不知道如何在global.asax
設置路由以指向此控制器作為默認值。
我如何在ASP.NET MVC中執行此操作?
當您創建區域時,MVC是否在[AreaName]AreaRegistration
/ [AreaName]文件夾下創建了[AreaName]AreaRegistration
類? 在那里你會發現看起來與此類似的區域注冊。 將defaults參數的controller =
部分修改為默認情況下要使用的控制器名稱(Login):
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Login_default",
"Login/{controller}/{action}/{id}",
new { controller = "Login", action = "Index", id = UrlParameter.Optional }
);
}
如果您使用[Authorize]
屬性裝飾HomeController(或者實際上,所有需要某人登錄的控制器),如果他們沒有登錄,ASP.NET MVC將自動將人們重定向到登錄屏幕。
用法示例:
[Authorize]
public ActionResult Home()
{
}
此外,您可能希望了解Open Redirect攻擊漏洞(並修復) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.