ASP.NET MVC区域默认页面

11

我有一个带区域的MVC 2网站,假设区域名称为{Admin}。

这些区域和整个网站都能正常工作。

我现在想要实现的是为这个区域设置不同的默认页面。

当我访问 http://webSiteName 时没有问题。

但是当我访问 http://webSiteName/Admin 时,我收到了以下错误:

The resource cannot be found

我尝试了来自ASP.NET MVC 2 RC 2 returns Area-specific controller when no area specified 的解决方案,但没有成功。

我也尝试过

routes.MapRoute(
                 "Admin",                                         
                 "{controller}/{action}/{id}",                               
                 new { controller = "AdminHome", action = "index" },
                 new[] { "Web.Areas.Admin.Controllers" }
                 );

并且

routes.MapRoute(
                 "Admin",                                      
                 "Admin",                              
                 new { controller = "AdminHome", action = "index" },   
                 new string[] { "Web.Areas.Admin.Controllers" }
                 );

但我仍然收到找不到资源。

我错在哪里了?


如果这个答案对你有帮助,请将其标记为已接受。 - Martin Fabik
1个回答

15

试试这个。 确保当您的区域命名为Admin时,它将位于/Areas/Admin/AdminAreaRegistration.cs中。

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "AdminHome",action = "Index", id = "" }
        );
    }

您无需向您的 Global.asax 添加任何内容。


谢谢马丁,最后比我想象的要简单。:) - profanis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接