C# targetFrame\u空白MVSiteMapCOntrib

C# targetFrame\u空白MVSiteMapCOntrib,c#,model-view-controller,sitemap,mvccontrib,mvcsitemapprovider,C#,Model View Controller,Sitemap,Mvccontrib,Mvcsitemapprovider,我正在使用MVC Contrib项目为MVC站点生成我的菜单系统 如何在中生成属性。有更好的方法吗 您是否尝试过创建SiteMapNodeModel显示模板?这允许您按照自己的意愿构建锚定标记。如果节点位于当前路径中,我创建了一个类来专门向锚点添加一个类,这样我就可以应用特定的CSS 以下是我使用的razor局部视图: @model MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel @{ if (Model.IsCurrentN

我正在使用MVC Contrib项目为MVC站点生成我的菜单系统


如何在
中生成属性。有更好的方法吗

您是否尝试过创建SiteMapNodeModel显示模板?这允许您按照自己的意愿构建锚定标记。如果节点位于当前路径中,我创建了一个类来专门向锚点添加一个类,这样我就可以应用特定的CSS

以下是我使用的razor局部视图:

@model MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel
@{   
    if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() !="MvcSiteMapProvider.Web.Html.MenuHelper")
{
        @Model.Title    
    }
    else if (Model.IsClickable)
    {
        <a href="@Model.Url" class="@(Model.IsInCurrentPath ? "current" : string.Empty)" target="@Model.TargetFrame" >@Model.Title</a>
    }
    else
    {
    @Model.Title
    }

}
@model mvcsitemprovider.Web.Html.Models.SiteMapNodeModel
@{   
if(Model.IsCurrentNode&&Model.SourceMetadata[“HtmlHelper”].ToString()!=“MvcSiteMapProvider.Web.Html.MenuHelper”)
{
@模型名称
}
else if(Model.isclick)
{
}
其他的
{
@模型名称
}
}

名为“SiteMapNodeModel.cshtml”(razor)的文件位于共享/显示模板中。当asp.net Mvc渲染SiteMapNodeModel时,它将自动使用此模板。

您是否尝试过创建SiteMapNodeModel显示模板?这允许您按照自己的意愿构建锚定标记。如果节点位于当前路径中,我创建了一个类来专门向锚点添加一个类,这样我就可以应用特定的CSS

以下是我使用的razor局部视图:

@model MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel
@{   
    if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() !="MvcSiteMapProvider.Web.Html.MenuHelper")
{
        @Model.Title    
    }
    else if (Model.IsClickable)
    {
        <a href="@Model.Url" class="@(Model.IsInCurrentPath ? "current" : string.Empty)" target="@Model.TargetFrame" >@Model.Title</a>
    }
    else
    {
    @Model.Title
    }

}
@model mvcsitemprovider.Web.Html.Models.SiteMapNodeModel
@{   
if(Model.IsCurrentNode&&Model.SourceMetadata[“HtmlHelper”].ToString()!=“MvcSiteMapProvider.Web.Html.MenuHelper”)
{
@模型名称
}
else if(Model.isclick)
{
}
其他的
{
@模型名称
}
}

名为“SiteMapNodeModel.cshtml”(razor)的文件位于共享/显示模板中。当asp.net Mvc渲染SiteMapNodeModel时,它将自动使用此模板。

您能否提供更多的代码,以便我可以尝试复制您正在尝试的内容?如何在web.config中设置提供商?你的控制器和/或视图中有什么?嘿@Vito我在原始问题中添加了一些额外的信息。你能提供更多的代码吗,这样我就可以尝试复制你正在尝试的内容了?如何在web.config中设置提供商?你的控制器和/或视图中有什么?嘿@Vito我在原始问题中添加了一些附加信息。!这就是我要找的,没有剃须刀能做到吗?是否改用SiteMapHelperModel.ascx文件?是的,可以使用默认的视图引擎语法(如*x)。MvcSiteMapProvider附带的示例使用了此语法,我将其转换为razor,因为这是我在项目中使用的语法。感谢您不久前找到了它,感谢您的帖子,值得50分的代表。。。!这就是我要找的,没有剃须刀能做到吗?是否改用SiteMapHelperModel.ascx文件?是的,可以使用默认的视图引擎语法(如*x)。MvcSiteMapProvider附带的示例使用此语法,我将其转换为razor,因为这是我在我的项目中使用的语法。感谢您不久前解决了此问题,感谢您的帖子,值得50分的支持。。。
@model MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel
@{   
    if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() !="MvcSiteMapProvider.Web.Html.MenuHelper")
{
        @Model.Title    
    }
    else if (Model.IsClickable)
    {
        <a href="@Model.Url" class="@(Model.IsInCurrentPath ? "current" : string.Empty)" target="@Model.TargetFrame" >@Model.Title</a>
    }
    else
    {
    @Model.Title
    }

}