簡體   English   中英

如何讓ASP.NET MVC為區域設置默認的Controller和Action?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM