【发布时间】:2014-05-14 12:55:02
【问题描述】:
我的路线:
"{lang}/{controller}/{action}/{id}"
{lang} 这里是:en-US、de-DE 等
一切正常,直到我想切换语言。当我切换语言时,我失去了部分菜单。
我的 MenuHelperModel.chtml
@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
<div class="hmenu">
<ul class="tabs">
@foreach (var node in Model.Nodes)
{
<li>@Html.DisplayFor(m => node)</li>
}
</ul>
</div>
@foreach (var node in Model.Nodes)
{
if (node.IsInCurrentPath)
{
if (node.Children.Any()) {
//Left side menu
<div class="vmenu" style="float: left;">
<ul class="tabs">
@foreach (var child in node.Children)
{
<li><a href="@child.Url">@child.Description</a></li>
}
</ul>
</div>
}
}
}
一切只适用于默认语言,适用于所有其他 node.IsInCurrentPath => false。 看来我需要覆盖它。有人可以建议如何做到这一点吗?有没有其他方法可以解决问题?或者也许我需要以某种方式分配父母?但它适用于默认语言。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 url-routing asp.net-mvc-routing mvcsitemapprovider