2012-05-23 49 views
0

我已經通過nuget爲我的MVC2項目安裝了MVCSiteMapProvider,但是我無法調整顯示麪包屑的問題。基本上,我對輔助文件所做的任何更改都不會反映在瀏覽器中,我甚至可以評論整個事情,但它仍然可以在頁面上正確呈現,只需使用默認標記即可。在MVCSiteMapProvider中編輯Breadcrum Html 2.3.1

我想在Html中添加幾個類來幫助我設置麪包屑菜單的樣式。我已經試過在整個項目中搜索呈現的標記的片段,但是沒有返回結果,導致我認爲構建Html的代碼被鎖定在DLL中。有誰知道我做錯了什麼?或者我可以如何實現我想要的?

在此先感謝!

我想(即被忽略)標記是在SiteMapPathHelperModel.ascx文件:

<% foreach (var node in Model) 
{ %> 
    <div class="node-left"></div> 
    <div class="node-label"> 
     <%=Html.DisplayFor(m => node)%> 
    </div> 
    <div class="node-right"></div> 

<% if (node != Model.Last()) 
    { %> 
     &gt; 
<% } %> 

我建立使用

<div id="breadCrumb"> 
    <%= Html.MvcSiteMap().SiteMapPath() %> 
</div> 
+1

除了SiteMapPathHelperModel.ascx以外,你是否也有SiteMapPathHelperModel.cshtml文件? – Xharze

+0

我這樣做,但我沒有使用剃鬚刀,因爲我使用的是MVC2。由於這個原因,我沒有在我的項目中包含SiteMapPathHelperModel.cshtml,儘管我確實有一份文件。 – Mark

+0

是否有沒有使用新版本3.2.2的原因?你可以嘗試升級? – Xharze

回答

1

這是晚了一點麪包屑,但我最近做了這個,也使用MVC2和沒有剃刀。我在做次/共享/稱爲「DisplayTemplates」的新文件夾,該文件夾中我創建了一個名爲「SiteMapPathHelperModel」新.ascx文件...

的ASCX文件包含以下代碼:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel>" %> 
<%@ Import Namespace="System.Web.Mvc.Html" %> 
<ul id="crumbs">  
    <% foreach (var node in Model.Nodes) { %> 
     <% if (!node.IsClickable) 
      { %> 
      <li><span class="noclick"><%=Html.DisplayFor(m => node)%></span> 
     <%} 
      else 
      { %> 
      <li><%=Html.DisplayFor(m => node)%> 
     <%} %> 
     <% if (node.Children.Any()) 
      { %> 
      <%=Html.DisplayFor(m => node.Children)%> 
     <% } %> 
     </li> 
    <% } %> 
</ul> 

然後這只是在您的視圖中正確調用它的一個簡單問題。爲此我做了:

<div id="breadcrumbs">   
     <%= Html.MvcSiteMap().SiteMapPath() %>    
</div> 

而且一切正常。我需要一個特定的標記,所以我想使用的CSS會正常工作。