2013-09-27 3 views
1

저는 MVC4 (또는 .NET을 사용하는 MVC)를 처음 사용합니다. 나는 내 컨트롤러와 뷰가 제대로 작동해야하지만 http://localhost:<port> 로 이동하면 내가 http://localhost:<port>/MyController 모든 것이 잘 작동합니다. 어떻게 웹 사이트의 루트에 대한 기본 컨트롤러를 어떻게해야합니까 "에 가면 나는 404를 얻을?MVC의 루트 디렉토리를 찾을 수 없습니다.

+0

이 Home''의 할 것. – asawyer

답변

2

기본 경로는 폴더에 "App_Start"

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

이다 "RouteConfig.cs"에 의해 처리됩니다 사실, 난. 내가 attributeRouting을 사용하여 선호 이상이 RouteConfig를 사용하지 않습니다. 그것은 속성을 통해 경로를 정의 할 수 있습니다 귀하의 컨트롤러 위에. http://attributerouting.net/ 이상 정확하게 http://attributerouting.net/#defining-routes

+0

코드가 내 RouteConfig.cs에 있습니다. 하지만'http : // localhost /'에 가면 404가됩니다. 루트에 Default.cshtml이나 다른 것이 필요합니까? –

+0

나는 사용하기 쉽고 라우트에 더 많은 옵션을 허용하는 "속성 라우팅"을 추가하여 내 대답을 편집했습니다. (PHP에서 온 경우 RouteConfig 대신 Attribute Routing을 사용하는 것이 더 쉬울 것이라고 생각합니다.) –

+0

나는 그것을 조사 할 것이다. 1 년 전까지 만해도 Windows에서 웹 개발을 한 적이 없었습니다. 항상 PHP가있는 Linux 상자에서 작업했습니다. 나는 .NET이 쉽게 만들 수있는 것들을 좋아하지만 다른 것들은 더 간단 할 수 있다고 생각한다. 나는 아직도 변화하고 있다고 생각한다. :) –

1

'루트 컨트롤러'의 이름과 방문 액션 이름이 무엇인가에 따라 다릅니다. MyController 인 경우 Index() 다음 당신은 당신이`HomeController`을 만들거나 컨트롤러를 가리 키도록 기본 경로를 변경할 수 있습니다, 그래서 기본적으로

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

좋아, 내가 홈 컨트롤러와보기를 만들었고 효과가있다. 나는 home이라는 컨트롤러에'http : // localhost/Home'이 필요하다고 가정했다. 도와 주셔서 감사합니다. 나는 비어있는 프로젝트를 만들었습니다. 왜냐하면 VS가 나에게 가장 많이 만들어주는 것을 배우지 않기를 원합니다. 당신의 도움을 많이 주셔서 감사합니다. –

관련 문제