我試圖讓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)
我附上捕獲更多的例子。
我不知道我做錯了什麼!任何想法?
一個月一個答案後不能及的。也許我的問題寫得不好?請讓我知道...... – Farlop