2010-11-23 5 views
0

방금 ​​사이트 맵을 생성하는 SiteMap 컨트롤러를 만들었습니다. 사이트 전체에 걸쳐 나열한 제품의 URL을 출력하려고합니다. 예를 들어 내 제품 목록보기에서이 코드를 가지고 :라우팅 URL이 다른 컨트롤러에서 일치하지 않는 이유는 무엇입니까?

/제품/세부/1330/샌디 블루 - 작은 위장 반바지

매핑이 URL을 출력

Url.Action("Details", "Products", new { id = item.Id, productName = Url.ToFriendlyUrl(item.Brand + " " + item.Colour + " " + item.Size + " " + item.Title) }) 

이 경로에 :

: 내 사이트 맵 컨트롤러에서
routes.MapRoute(

     "ViewProduct", 

     "products/{cat}/{id}/{productName}", 

     new { controller = "products", action = "Details", cat = "", id = "", productName = "" }, 

     new string[] { "EliteFightKit.Web.Controllers" } 

    ); 

그러나 나는 URL을 생성하기 위해이 코드를 사용하고 있습니다
Url.Action("Details", "Products", new { id = item.Id, productName = Url.ToFriendlyUrl(item.Brand + " " + item.Colour + " " + item.Size + " " + item.Title) }) 

과이 출력거야?

/제품/세부/1330 PRODUCTNAME = 샌디 블루 - 작은 위장 반바지

내가 잘못 가고

, 나는 사이트 맵 URL을 얻는 방법 상관 관계를 내 제품 목록보기에서 생성 된 URL을 사용합니까?

로이드

답변

1

경로가 잘못되었습니다. 선택적 매개 변수는 끝에 만 나타날 수 있습니다. 귀하의 경우에는 cat 경로 매개 변수가 있으며 옵션은 URL 중간에 있습니다. 따라서이 경로를 기본 경로 대신 선택하려는 경우이 매개 변수의 값을 제공해야합니다.

Url.Action("Details", "Products", 
    new { id = "123", productName = "foo", cat = "bar" }) 
+0

Good catch! 고마워, 완전히 그 중 하나를보고 싶었 어, 어젯밤 약 한 시간 동안 그것을보고 있었고, 또 다른 나무는 나무의 순간을 볼 수 없다. 감사의 시간을내어 주셔서 감사합니다. – lloydphillips

관련 문제