Asp.net mvc NETMVC5。无法找到资源导航到AreaName/Home/Index时出错
我在VS2013中将ASP.NET 4 WebForm网站项目从VS2010转换为ASP.NET 4.5 Web应用程序项目。然后我在这个新项目中创建了一个区域,并将控制器、模型和视图文件从另一个VS2012 MVC4项目复制到这个新的Web应用程序项目中。当我导航到WebForms页面时,应用程序运行良好。但是当我导航到MVC视图时,我得到以下错误Asp.net mvc NETMVC5。无法找到资源导航到AreaName/Home/Index时出错,asp.net-mvc,asp.net-mvc-routing,visual-studio-2013,Asp.net Mvc,Asp.net Mvc Routing,Visual Studio 2013,我在VS2013中将ASP.NET 4 WebForm网站项目从VS2010转换为ASP.NET 4.5 Web应用程序项目。然后我在这个新项目中创建了一个区域,并将控制器、模型和视图文件从另一个VS2012 MVC4项目复制到这个新的Web应用程序项目中。当我导航到WebForms页面时,应用程序运行良好。但是当我导航到MVC视图时,我得到以下错误资源找不到localhost:1234/AreaName/Home/Index。我有主控制器和索引操作方法以及Index.cshtml。它在VS20
资源找不到localhost:1234/AreaName/Home/Index
。我有主控制器和索引操作方法以及Index.cshtml。它在VS2012项目中起作用,但没有区域。我的'AreaNameAreaRegistration.cs文件具有:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreaName_default",
"AreaName/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
编辑
我只是做了以下操作:添加了一个名为“JustTestController”的新控制器,右键单击其索引操作方法,单击“添加视图”,它创建了一个View Index.cshtml。现在当我浏览到http://localhost:1234/AreaName/JustTest/Index
,将显示该视图。因此,问题是为什么当我从另一个项目(在VS2012中创建)复制/粘贴控制器/模型/视图时,这些视图会出现上述错误,即使手动创建控制器及其操作的相应视图不会显示错误。对于从VS2012项目复制/粘贴的那些控制器/视图,我需要做些什么
问题已解决
我已经解决了这个问题(多亏了埃里克)。请参阅下面我的评论。您是否正在global.asax中调用
AreaRegistration.RegisteralAreas()
?您是否也添加了相关的MVC web.config条目?@Erik,是的,我在Global.asax.cs中添加了AreaRegistration.Registeralareas()
。我确实添加了相关的MVC web.config,但也许你可以指出我应该检查哪些MVC条目是否存在。你真的没有给我们提供任何信息。显然,MVC正在发挥作用。所以控制器一定有问题。将其与您刚刚创建的控制器进行比较。非常感谢@Erik的输入。在许多地方都存在名称空间问题。VS2012项目中的对象控制器/模型/视图的名称空间与VS2012项目的名称相同。在新项目中,我将其改为新项目的名称,一切正常。因此,如果一个类被使用名称空间OldProjectName{…}包围,那么我用NewProjectName{…}包围它。将来使用路由调试器可能是一个好主意(您可以得到它)。查看Phil Hackk关于Route Debugger的博客文章,可以省去很多麻烦。