2013-09-27 34 views
1

我是MVC4(或使用.NET的MVC)的新手。我有我的控制器和视图工作正常,但如果我浏览到 http://localhost:<port> 我得到一个404。如果我去“ http://localhost:<port>/MyController 一切工作正常。我如何获得一个默认控制器为网站的根源在哪里?找不到MVC的根目录

+0

默认情况下它是'Home'所以你可以创建一个'HomeController'或更改默认路由指向您的控制器。 – asawyer

回答

2

您的默认路由是由“RouteConfig.cs”,这是在文件夹中“App_Start”

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

处理其实,我从来不使用这个RouteConfig了。我更喜欢使用attributeRouting。它允许通过属性来定义路由在您的控制器之上。http://attributerouting.net/或更准确地说http://attributerouting.net/#defining-routes

+0

该代码位于我的RouteConfig.cs中。但是,如果我去'http:// localhost /'我得到一个404.我需要一个Default.cshtml或根的东西? –

+0

我编辑了我的答案,添加了“属性路由”,我发现它更易于使用,并且可以为您的路线提供更多选项。 (如果你来自php,我认为你会更容易使用属性路由而不是RouteConfig)。 –

+0

我会检查一下。直到一年前,我从未在Windows中进行过任何网络开发。始终在使用PHP的Linux机器上工作。我喜欢.NET的一些简单的东西,但我认为其他的东西可能更简单。我想我还在转型。 :) –

1

这取决于你的'根控制器'被称为什么,你的着陆动作是什么名称。如果是MyControllerIndex()那么你会做

routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "My", action = "Index", id = UrlParameter.Optional } 
+0

好吧,我创建了一个家庭控制器和视图,它的工作。我认为任何名为home的控制器都需要'http:// localhost/Home'来工作。谢谢您的帮助。我创建了一个Empty项目,因为我想学习没有VS为我创建大部分:)谢谢你的帮助。 –