2013-09-27 83 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爲我創建大部分:)謝謝你的幫助。 –