我试图让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