1

를 통해 사이트 맵을 작성, 나는 정의 포괄 아래 경로가 : 컨트롤러 내부ASP.NET MVC 모든 매개 변수를 잡아와 ASP.NET MVC에서 그

routes.MapRoute(
    "TagsRoute", 
    "tags/{*tags}", 
    new { controller = "home", action = "tags"} 
); 

을, 나는 제품을 조회하고있는 아래 {tags}를 입력했습니다

public ViewResult(string[] tags) { 

    var model = _repo.Get(tags); 

    return View(model); 
} 

는 내가 고민하고하는 것은 MVCSiteMapProviderDynamicNodeProviderBase 클래스와이를 통해 사이트 맵을 만드는 방법입니다.

아이디어가 있으십니까?

답변

2

사이트 맵 노드 :

<mvcSiteMapNode title="Tags" action="Tags" controller="Home" dynamicNodeProvider="Your.Namespace.TagsDynamicNodeProvider, YourAssemblyName" />

자체가이 라인을 따라 뭔가 될 것 공급자 :

public class TagsDynamicNodeProvider 
    : DynamicNodeProviderBase 
{ 
    public override IEnumerable<DynamicNode> GetDynamicNodeCollection() 
    { 
     DynamicNode node = new DynamicNode(); 
     node.Title = "Some title"; 
     node.RouteValues.Add("tags", new string[]{"tag1", "tag2"}); 

     yield return node; 
    } 

    public override CacheDescription GetCacheDescription() 
    { 
     return null; 
    } 
} 
+0

감사합니다! 달성하고자하는 것은 조금 다릅니다. 'tags> tag1> tag2> tag3'와 같은 사이트 맵 빵 부스러기를 만들고 싶습니다. 또한,이 동적 노드는'http : // localhost : 28874/tags/System.String % 5B % 5D'와 같은 하나의 사이트 맵'loc' 항목 만 생성합니다. OOB 기능으로는이 작업을 수행 할 수 없다고 생각합니다. – tugberk

+0

그런 경우 노드의 .Key 및 .ParentKey 속성을 가지고 놀고 계층 구조를 직접 만들 수 있습니다. – maartenba

+0

흠, 거의 50 개의 태그와 50 개의 태그가 보유하고있는 모든 옵션을 반복하는 아이디어는 시작시 성능에 문제가있는 것처럼 들립니다. 컨트롤러 동작을 다르게 설계해야합니다. 아마도 최대 태그 길이 5. 감사합니다. – tugberk

관련 문제