2013-02-06 80 views
1

我試圖讓MvcSiteMapProvider與一個執行一些CRUD操作的簡單站點一起工作。我差不多完成了,但在很多情況下我都會遇到奇怪的行爲。在MVC站點中使用MVC SiteMapProvider和DynamicNodeProvider進行CRUD操作

首先,我創建了控制器和視圖中使用參考標準層次結構:
控制器
- > EquipoController
查看
- > EQUIPO - >索引/詳細信息/創建/修改/刪除...

接下來,定義我mvc.sitemap

<mvcSiteMapNode title="Inicio" controller="Home"> 
    <mvcSiteMapNode title="Equipo" controller="Equipo"> 
    <mvcSiteMapNode title="Crear Equipo" action="Create"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Detalle Equipo" action="Details" dynamicNodeProvider="MvcApplication2.TestDynamicNodeProvider, MvcApplication2"> 
     <mvcSiteMapNode title="Editar Equipo" action="Edit"></mvcSiteMapNode> 
     <mvcSiteMapNode title="Eliminar Equipo" action="Delete"></mvcSiteMapNode> 
    </mvcSiteMapNode> 
    </mvcSiteMapNode> 

請注意,編輯和刪除操作嵌套在「詳細信息」節點中。

接着,我實現了TestDynamicNodeProvider類,如下所示: 公共類TestDynamicNodeProvider:DynamicNodeProviderBase { 實體分貝=新實體();

public override IEnumerable<DynamicNode> GetDynamicNodeCollection() 
    { 
     // Build value 
     var returnValue = new List<DynamicNode>(); 

     // Create a node for each album 
     foreach (var equipo in db.GEN_EQUIPO) 
     { 
      DynamicNode node = new DynamicNode(); 
      node.Title = equipo.DESCRIPCION; 
      node.RouteValues.Add("id", equipo.ID);     
      yield return node;     
     }    
    } 
} 

我在GEN_EQUIPO(EQUIPO_A和EQUIPO_B)中有兩個項目。這些是我在每個視圖中獲得的麪包屑:
指數:Inicio> Equipo(easy ...)
詳細信息視圖(第二項):Inicio> Equipo> EQUIPO_B(ok)
編輯視圖(第二項):Inicio > EQUIPO>EQUIPO_A> Editar EQUIPO(錯了!)
刪除視圖(第2項):(!錯)INICIO> EQUIPO>EQUIPO_A> Eliminar EQUIPO

我想不通爲什麼在編輯和刪除視圖它始終使用列表中的第一項來構建麪包屑。同樣的鏈接是錯誤的(EQUIPO /詳細信息/ 1當它應該是EQUIPO /詳細信息/ 2

我附上捕獲更多的例子。

我不知道我做錯了什麼!任何想法?

Look at direction bar... and then to the link generated. Also, see that TALADRO is not TRONZADORA!

+0

一個月一個答案後不能及的。也許我的問題寫得不好?請讓我知道...... – Farlop

回答

0

您是否嘗試過加入 「preservedRouteParameters」 到您的詳細資料,編輯和刪除節點?我會假設你正在使用領域,如「ID」,所以它看起來像:

preservedRouteParameters =「ID」

+0

增加'preserveRouteParameters =「id」'爲詳細信息節點,現在鏈接使用正確的URL(localhost:62974/Equipo/Details/2)構建,但文本仍然失敗(顯示TALADRO而不是TRONZADORA) – Farlop