首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVC站点中使用MVC SiteMapProvider和DynamicNodeProvider进行CRUD操作

在MVC站点中使用MVC SiteMapProvider和DynamicNodeProvider进行CRUD操作
EN

Stack Overflow用户
提问于 2013-02-06 16:49:01
回答 1查看 884关注 0票数 1

我试图让MvcSiteMapProvider使用一个执行CRUD操作的简单站点。我几乎可以做到这一点,但在很多情况下,我都会有奇怪的行为。

首先,我使用stardard等级创建了Controller和视图:

控制器

-> EquipoController

视图

-> Equipo ->索引/详细信息/创建/编辑/删除

接下来,定义我的mvc.sitemap

代码语言:javascript
复制
<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>

注意,编辑和删除操作嵌套在Details节点中。

接下来,我将TestDynamicNodeProvider类实现如下:公共类TestDynamicNodeProvider : DynamicNodeProviderBase { Entities db =新实体();

代码语言:javascript
复制
    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 (容易.)

详细信息查看(第二项):Inicio > Equipo > EQUIPO_B (确定)

编辑视图(第二项):Inicio > Equipo > EQUIPO_A > Editar Equipo (错误!)

删除视图(第2项):Inicio > Equipo > EQUIPO_A > Eliminar Equipo (错误!)

我不明白为什么在编辑和删除视图中,它总是使用列表中的第一项来构建面包屑。链接也是错误的(Equipo/Details/1,而应该是Equipo/Details/2)

我附上一个捕获的更多的例子。

我不知道我做错了什么!有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 07:11:06

您是否尝试过在详细信息、编辑和删除节点中添加"preservedRouteParameters“?我假设您使用的是"id“这样的字段,因此它看起来如下:

preservedRouteParameters="id“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14734403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档