2008-08-18 5 views
3

나는 다가오는 프로젝트를위한 ASP.NET MVC 프레임 워크를 배울 생각이다. 고급 라우팅을 사용하여 사이트 맵 hiearachy를 기반으로 긴 URL을 만들 수 있습니까?Sitemap에서 ASP.NET MVC 경로를 생성 할 수 있습니까?

예 탐색 경로 :
홈> 쇼핑> 제품> 가전> 주방> 조리기구> Cooksets> 붙지

일반 (내가 생각하는) MVC의 URL :
http://example.com/products/category/NonstickCooksets

원하는 URL :
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

이 작업을 수행 할 수 있습니까?

답변

9

잭, 내가 제대로 이해하는 경우 하위 범주의 무제한 깊이를 원합니다. 아니, MVC 미리보기 3 (3 또는 4)이 해결되었습니다 생각 이후로 큰.

는 것처럼 경로를 정의

"{컨트롤러}/{동작}/{* categoryPath}"와 같은 URL에 대한

:

http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

당신이 있어야한다 상품 액션이있는 ShopController :

public class ShopController : Controller 
{ 
... 
    public ActionResult Products(string categoryPath) 
    { 
     // the categoryPath value would be 
     // "household/kitchen/cookware/cooksets/nonstick". Process it (for ex. split it) 
     // and then decide what you do.. 
     return View(); 
    } 
2

MVC 라우팅을 사용하면 원하는 구조를 거의 정의 할 수 있습니다. 각 부분의 의미를 의미 적으로 정의해야합니다. "상점/제품"과 같이 "하드 코드 된"비트를 가지고 나머지를 "{category}/{subcategory}/{specialty}"변수로 정의 할 수 있습니다.

원한다면 모두 같은 끝점에 매핑되는 여러 경로를 정의하십시오. 기본적으로 MVC 앱에 URL이 들어 오면 일치하는 패턴을 찾아 변수를 채우고 처리를 위해 요청을 적절한 컨트롤러로 전달할 때까지 라우팅 테이블을 통과합니다.

기본 경로는 간단한 컨트롤러, 액션, ID 종류의 설정이지만 이는 사용자가 할 수있는 일의 범위가 아닙니다.

관련 문제