C# VB.NET中的MVC 5区域不工作

C# VB.NET中的MVC 5区域不工作,c#,asp.net-mvc,vb.net,C#,Asp.net Mvc,Vb.net,使用Visual Studio 2013 Professional,我创建了一个新项目 选择Visual Basic,然后选择Web,然后选择Web应用程序。我选择MVC。没有身份验证。创造 然后我添加了一个名为“Test”的区域。一个名为“Test”的控制器和一个名为“Index”的视图 我点击F5,项目构建和运行,并给我HTTP 404 除了在创建Web应用程序时选择C#而不是visualbasic之外,我做了完全相同的事情(字面上是相同的步骤)。它是有效的 是,调用了AreaRegistr

使用Visual Studio 2013 Professional,我创建了一个新项目

选择Visual Basic,然后选择Web,然后选择Web应用程序。我选择MVC。没有身份验证。创造

然后我添加了一个名为“Test”的区域。一个名为“Test”的控制器和一个名为“Index”的视图

我点击F5,项目构建和运行,并给我HTTP 404

除了在创建Web应用程序时选择C#而不是visualbasic之外,我做了完全相同的事情(字面上是相同的步骤)。它是有效的

是,调用了AreaRegistration.RegisterAlareas()。这是一个带有上述步骤的默认新项目,但它根本不起作用,而C版本是

为什么会这样,我怎样才能修复它?我的客户需要它在VB.NET中,而不是在C中#

下面是RouteDebugger说的:

Matches Current Request | Url | Defaults | Constraints | DataTokens

False | __browserLink/requestData/{requestId} (null) (null) (null) 

True  | Test/{controller}/{action}/{id} action = Index, id = UrlParameter.Optional (empty) Namespaces = WebApplication2.Areas.Test.*, area = Test, UseNamespaceFallback = False 

False | {resource}.axd/{*pathInfo} (null) (empty) (null) 

True  | {controller}/{action}/{id} controller = Home, action = Index, id = UrlParameter.Optional (empty) (empty) 

True | {*catchall} (null) (null) (null) 

它与C#或VB.NET都无关。。。我猜应用程序中没有其他控制器;如果您有一个名为
TestController
的控制器,并且您正在使用默认路由,那么注册的唯一可用路由是
test/test

,这要归功于本文:

它突出显示,默认情况下,VB.NET区域控制器不会自动添加名称空间,这是工作所必需的。将:
名称空间区域.Test.Controllers
添加到它工作的TestController之后


感谢微软让这一体验变得如此困难和愚蠢。

C#起作用。VB.NET没有。那么,它怎么可能不是C#或VB.NET,而是另一个整体问题呢?请自己试试看,这是一个创建的默认Web应用程序。所以“HomeController”的存在是因为安装了引导MVC5版本。我只是添加了一个区域。VB.NET项目404的,C#项目,以完全相同的方式/步骤创建,工作正常。为什么。它允许我选择MVC作为一个项目,就是这样。不是空的。这是他们默认添加的引导程序我明白了。。。在
New ASP.NET project
对话框中,我通常选择
Empty
而不是
MVC
,但选中
添加文件夹和核心引用下的小
MVC
复选框,因为如果我从一个新项目开始,我只想添加我真正需要的东西…VB.NET不会自动将名称空间添加到该区域的控制器中,这就是它失败的原因。您是否在控制器中定义了ActionResult?如果您尝试右键单击ActionResult并单击“添加视图…”,会发生什么情况?可能视图所在的文件夹结构不正确。正如我提到的,我添加了一个名为“Test”的控制器。在其中,我右键单击“Index”ActionResult并添加了一个名为“Index”的视图。VB.NET中的文件夹结构与C#版本完全相同。帮你自己一个忙。打开VS.NET 2013,按照我所做的和看到的做。你尝试过清除缓存吗?我刚刚在两个并排运行的VS2013 pro实例上尝试过,一个是C#和一个是VB.NET;假设我完全遵循了你的步骤,你的问题就不会发生在我身上。您的浏览器打开了什么URL?您在
controllers
文件夹中有什么控制器?@adrianwraghomecontroller是自动创建的。我右键单击,添加了一个名为Test的区域,并在新区域的controller文件夹下添加了一个名为Test的控制器。然后我右键单击,添加了一个名为Index的新视图(默认情况下,索引是在控制器中创建的),然后点击F5,它打开只是为了让人尴尬。。。我已经检查了我的测试项目,它在我的TestController.vb上。@AdrianWragg这正是你的工作的原因。我知道ReSharper会自动修复,这就是为什么我问它是否存在的原因。没有ReSharper,但是我安装了MVC5脚手架。由于您的问题似乎是由VB模板不正确引起的,因此安装该模板可能会解决此问题。@AdrianWragg谢谢,准备尝试一下。我已经向我的猫道歉了。。。可怜的家伙。。。