2012-04-20 3 views
1

저는 ASP.NET MVC3 샘플 프로젝트를 사용하고 있으며 루트 URL 바로 가기 페이지에 새 링크를 추가하려고합니다. 그래서 mydomain.com/Home 대신/그것에 관해서는 mydomain/About을 할 것입니다.ASP.NET MVC3 샘플 프로젝트 홈 폴더 제거

이 페이지는 새로운 경로를 추가 할 것을 제안합니다. http://weblogs.asp.net/gunnarpeipman/archive/2011/04/17/asp-net-mvc-defining-short-urls-for-root-level-pages.aspx

다른 방법이 있습니까? 루트에있을 5 페이지가 있다고 가정 할 때 각각에 대해 특별한 경로를 추가해야합니까?

답변

0

가정용 컨트롤러 작업을 리디렉션하지 않고 여러 개의 단일 경로 요청/응답을 수행한다고 가정 할 때이 옵션이 있습니다.

귀하가 제공하는 링크는 입니다. 방법입니다. 다른 하나는 디폴트 라우트를 사용하여 5 개의 컨트롤러를 작성하는 것입니다. 나는 어느 쪽이 좋을지 모르겠다. (당신의 5 가지 경로가 실제로 부족하기 때문에), 둘 다 똑같은 것을 만들어 낸다. 기본적으로 기본 컨트롤러가 이고 기본 동작은 인덱스이 아니라는 것

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", 
      id = UrlParameter.Optional } // Parameter defaults 
); 

: 같은 기본 경로가 보이는 경우. 이 값들은 상호 배타적 인 것이 아니며 기본값이 아니기 위해 다른 값을 요구하지도 않습니다. 따라서

당신은 할 수 : website.com/about

public AboutController 
{ 
    public ActionResult index() 
    { 
    return this.View(); 
    } 
} 

및/또는 website.com/people

public PeopleController 
{ 
    public ActionResult index() 
    { 
    return this.View(); 
    } 
} 
+0

로 PeopleController 예제로이 각 루트 페이지에는 자체 폴더와 index.aspx가 있어야 함을 의미합니다. 나는 그 권리를 얻었습니까? 내가 말할 때 기본 경로를 변경하는 더 좋은 방법이 있습니다. 그래서 집을 지우고 모든 것을 한 단계 위로 가져 가세요. 여전히 mydomain.com/Products 및 mydomain.com/Products/Product1과 같은 서브 페이지가 있습니다. – Tigran

+0

예제는 어떤 방식 으로든 기본 경로의 기본 동작을 넘어서 더 많은 작업을 수행하는 다른 컨트롤러를 만들지 못하게하므로'/ Products '/'/ Products/Product'는 여전히 사용할 수 있습니다. –

+0

예 귀하의 방법이 효과가 없다고 제안하는 것이 아니 었습니다. 제 상황에 대한 설명을하고있는 중이었습니다. 그러나 각 페이지마다 폴더가 필요 없기 때문에 루트 페이지에 새로운 길을 추가하는 것이 더 깔끔해질 것이라고 생각합니다. 대답 할 시간을내어 주셔서 감사합니다. – Tigran