Asp.net mvc 如何将特定区域的视图配置为MVC4应用程序的主入口?

Asp.net mvc 如何将特定区域的视图配置为MVC4应用程序的主入口?,asp.net-mvc,razor,asp.net-mvc-4,routes,Asp.net Mvc,Razor,Asp.net Mvc 4,Routes,请告诉我需要此场景的帮助: 我在UIAreaRegistration类中有一个区域“\UI”,其中有一个控制器“ActionController”和他的视图“Login.cshtml”: public class UIAreaRegistration : AreaRegistration { public override string AreaName { get { return "UI"; } } public override void

请告诉我需要此场景的帮助:

我在UIAreaRegistration类中有一个区域“\UI”,其中有一个控制器“ActionController”和他的视图“Login.cshtml”:

public class UIAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get { return "UI"; }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "UI_default",
            "UI/{controller}/{action}/{id}",
            new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );
    }
}
现在我希望Login.cshtml成为应用程序的第一个视图。 然后在global.asax.cs的“registerOutes”中,我有:

AreaRegistration.RegisterAllAreas();

//Default    
//routes.MapRoute(
//    name: "Default",
//    url: "{controller}/{action}/{id}",
//    namespaces: new[] { "", "" },
//    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//);

routes.MapRoute(
    name: "Default",
    url: "{area}/{controller}/{action}/{id}",
    defaults: new { area = "UI", controller = "Account", action = "Login", id = UrlParameter.Optional }
);
但是没用,我该怎么办


提前感谢

您正在尝试的是将您的UI区域设置为默认区域,以便在URL中不使用UI前缀即可访问UI中的任何控制器。 问题是根文件夹中的控制器将不再可访问。如果这是您想要的,您可以通过将区域路线注册更改为:

 public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "UI_default",
            "UI/{controller}/{action}/{id}",
            new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );
    }
致:

更简单的解决方案是在默认控制器上创建一个操作,将用户重定向到您的区域

 public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "UI_default",
            "{controller}/{action}/{id}",
            new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );
    }