1

在 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);
}

我正在努力解决的是如何使用MVCSiteMapProvider DynamicNodeProviderBase类创建站点地图。

任何想法?

4

1 回答 1

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;
    }
}
于 2012-01-20T09:34:23.217 回答