添加到mvc.sitemap文件的锚链接

时间:2015-12-28 13:43:51

标签: asp.net-mvc anchor single-page-application mvcsitemapprovider

我有一个MVC单页网站,我有一个mvc.sitemap文件:

 <mvcSiteMapNode  title="Home" controller="Home" action= "Index"> 
 <mvcSiteMapNode title="About" controller="Home" action="About"/>
 </mvcSiteMapNode>

我想在此页面添加锚点链接,这是一个很好的方法吗?

<a href="@Url.Action("Index","Home")#services">services</a> 
<a href="@Url.Action("Index","Home")#portfolio">Portfolio</a>  

出于性能原因,我不希望在运行时编辑页面。

1 个答案:

答案 0 :(得分:1)

1-添加xml节点的密钥

 <mvcSiteMapNode  title="portfolio" controller="Home" action= "Index" key="portfolio" />

然后编辑共享&gt;&gt;显示tamplates
然后像那样编辑 SiteMapNodeModel.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl`1[[MvcSiteMapProvider.Web.Html.Models.SiteMapNodeModel,MvcSiteMapProvider]]" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%@ Import Namespace="MvcSiteMapProvider.Web.Html.Models" %>

<% if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() != "MvcSiteMapProvider.Web.Html.MenuHelper")  { %>
    <%=Model.Title %>
<% } else if (Model.IsClickable) { %>
    <% if (string.IsNullOrEmpty(Model.Description)) { %>
        <a class="page-scroll"  href="<%=Model.Url%>"><%=Model.Title %></a>
    <% } else { %>
        <a class="page-scroll"  href="<%=Model.Url%>#<%=Model.Key%>" title="<%=Model.Description%>"><%=Model.Title %></a>
    <% } %>
<% } else { %>
    <%=Model.Title %>
<% } %>

全部是