【发布时间】:2013-11-13 12:18:00
【问题描述】:
我想让面包屑导航到同一页面的 3 条路径。网站地图在底部。
<mvcSiteMapNode title="New" controller="Actions" action="NewActions" area="Promotion">
<mvcSiteMapNode title="Action" controller="Actions" action="ActionTabDetails" area="Promotion"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="Continues" controller="Actions" action="ContinuesActions" area="Promotion">
<mvcSiteMapNode title="Action" controller="Actions" action="ActionTabDetails" area="Promotion" actionStatus="1"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="Finished" controller="Actions" action="FinishedActions" area="Promotion">
<mvcSiteMapNode title="Action" controller="Actions" action="ActionTabDetails" area="Promotion" actionStatus="2"/>
</mvcSiteMapNode>
我尝试使用属性“类型”和“键”,但没有帮助。每次我打开动作 ActionDetails 时,面包屑看起来像 根>完成>动作
路径的选择在控制器中由模型的状态决定。我现在应该编写自己的 DynamicNodeProvider 但我不知道如何将参数从控制器传递给 Provider。我不能使用动作注释,因为我现在在动作主体中的模型条件如下:
public ActionResult ActionTabDetails(Guid actionTabGuid)
{
ActionTab model = actionTabRepo.Get(actionTabGuid, "ActionGroup");
if (model.Status == ActionStatus.New)
{
//Parameter with I want to pass to the DynamicNodeProvider or select current node
}
//another conditions
return View("ActionTab/ActionTabDetails", model);
}
我试过了:
SiteMap.CurrentNode = SiteMap.Provider.FindSiteMapNodeFromKey("new");
但在控制器中只是吸气剂。
非常感谢您的帮助。
更新:
我使用可选参数进行了操作:
public ActionResult ActionTabDetails(Guid actionTabGuid, int actionStatus=0)
但每个网址都喜欢
- /Promotion/Actions/Action?actionTabGuid=822ed729-8edd-4301-970a-867d2b4f9246
- /Promotion/Actions/Action?actionTabGuid=822ed729-8edd-4301-970a-867d2b4f9246&actionStatus=1
- /Promotion/Actions/Action?actionTabGuid=822ed729-8edd-4301-970a-867d2b4f9246&actionStatus=2
不带参数直接指向第一个节点。我已经尝试过使用 obvers 参数,但效果仍然相同。我将不胜感激。
【问题讨论】:
标签: c# asp.net-mvc sitemap breadcrumbs mvcsitemapprovider