Asp.net Mvc地区路由问题

我希望网站的默认页面是Login.cshtml。 我得到了例外:

错误:未找到视图“LogIn”或其主节点,或者没有视图引擎支持搜索的位置。 搜索了以下位置:

我有2个区域。 结构如下所示。

在此处输入图像描述

我的routeconfig如下所示。

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace Portal.Web { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "LogIn", id = UrlParameter.Optional }, namespaces: new[] { "Portal.Web.Areas.Management" } ); } } } 

我的global.asax.cs如下所示:

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Routing; namespace Portal.Web { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); } } } 

“你有什么建议吗?

你忘了一些东西

概括:

ManagementAreaRegistration.cs

 public class ManagementAreaRegistration : AreaRegistration { public override string AreaName { get { return "Management"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Management_default", "Management/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } 

RouteConfig.cs

 public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( "Default" // Route name , "{controller}/{action}/{id}" // URL with parameters , new { area = "management", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults , new[] { "Portal.Web.Areas.Management.Controllers" } // Namespace of controllers in root area ); } 

你设置Portal.Web.Areas.Management它应该是Portal.Web.Areas.Management.Controllers它也缺少默认区域: area = "management"

看起来您需要在MapRoute上更改名称空间:

 Portal.Web.Areas.Management 

至:

 Portal.Web.Areas.Management.Controllers 

清除bin文件夹并重建。 旧路由有可能设置旧的dll。 这对我来说至少适用于一条路线。

我按照这篇文章中的说明。 问题解决了。 访问ASP.NET MVC默认URL视图

谢谢你们。