Bonsoir.

Bon voilà, je coince carrément sur la création de mon fil d’Ariane . J'utilise un package nommé "MvcSitemapProvider" et je cré mes élément dynamiquement. Le problème est que ... ce que je cré dynamiquement ne s'affiche pas. Je n'ai aucune erreur, je ne passe même pas par mon point d'arrêt lors du lancement de mon projet.

mon_projet/Helpers/DynamicNodeProvider.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
using MvcSiteMapProvider.Extensibility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
 
namespace CheckpointWeb.Helpers
{
    public class DynamicNodeProvider : DynamicNodeProviderBase
    {
        public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
        {
            /*string UserRole = string.Empty;
            MembershipUser user = Membership.GetUser();
            if (user != null)
            {
                UserRole = Roles.GetRolesForUser(user.UserName)[0];
            }*/
 
            List<DynamicNode> returnValue = new List<DynamicNode>();
 
            /******************************************************************
             * Account Controller
             *****************************************************************/
            // Accueil > Connexion
            returnValue.Add(new DynamicNode
            {
                Title = "Connexion",
                Controller = "Account",
                Action = "Login",
                Key = "AccountLogin",
                ParentKey = "HomeIndex"
            });
 
            /******************************************************************
             * Admin Controller
             *****************************************************************/
            // Accueil > Gérer les administrateurs
            /*returnValue.Add(new DynamicNode
            {
                Title = "Gérer les administrateurs",
                Controller = "Admin",
                Action = "Index",
                Key = "AdminIndex",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Gérer les administrateurs > Formulaire de création de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de création de compte",
                Controller = "Admin",
                Action = "Create",
                Key = "AdminCreate",
                ParentKey = "AdminIndex"
            });
 
            // Accueil > Gérer les administrateurs > Formulaire de mise à jour de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de compte",
                Controller = "Admin",
                Action = "Edit",
                Key = "AdminEdit",
                ParentKey = "AdminIndex"
            });
 
            // Accueil > Gérer les administrateurs > Formulaire de mise à jour de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de compte",
                Controller = "Admin",
                Action = "Settings",
                Key = "AdminSettings",
                ParentKey = "AdminIndex"
            });
 
            // Accueil > Gérer les administrateurs > Formulaire de mise à jour de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de compte",
                Controller = "Admin",
                Action = "SetTheme",
                Key = "AdminSetTheme",
                ParentKey = "AdminIndex"
            });*/
 
            /******************************************************************
             * Customer Controller
             *****************************************************************/
            // Accueil > Gérer les clients
            /*returnValue.Add(new DynamicNode
            {
                Title = "Gérer les clients",
                Controller = "Customer",
                Action = "Index",
                Key = "CustomerIndex",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Gérer les clients > Formulaire de création de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de création de compte",
                Controller = "Customer",
                Action = "Create",
                Key = "CustomerCreate",
                ParentKey = "CustomerIndex"
            });
 
            // Accueil > Gérer les clients > Formulaire de mise à jour de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de compte",
                Controller = "Customer",
                Action = "Edit",
                Key = "CustomerEdit",
                ParentKey = "CustomerIndex"
            });
 
            if (UserRole == "saleagent")
            {
                // Accueil > Gérer les clients > NOM DU CLIENT
                returnValue.Add(new DynamicNode
                {
                    Title = string.Empty,
                    Controller = "Order",
                    Action = "Index",
                    Key = "OrderIndex",
                    ParentKey = "CustomerIndex"
                });
            }*/
 
            /******************************************************************
             * Home Controller
             *****************************************************************/
            // Accueil > À propos
            /*returnValue.Add(new DynamicNode
            {
                Title = "À propos",
                Controller = "Home",
                Action = "About",
                Key = "HomeAbout",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Contact
            returnValue.Add(new DynamicNode
            {
                Title = "Contact",
                Controller = "Home",
                Action = "Contact",
                Key = "HomeContact",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Mentions légales
            returnValue.Add(new DynamicNode
            {
                Title = "Mentions légales",
                Controller = "Home",
                Action = "Legal",
                Key = "HomeLegal",
                ParentKey = "HomeIndex"
            });*/
 
            /******************************************************************
             * News Controller
             *****************************************************************/
            // Accueil > Gérer les news
            /*returnValue.Add(new DynamicNode
            {
                Title = "Gérer les news",
                Controller = "News",
                Action = "Index",
                Key = "NewsIndex",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Gérer les news > Ramasoft
            returnValue.Add(new DynamicNode
            {
                Title = "Ramasoft",
                Controller = "News",
                Action = "Ramasoft",
                Key = "Ramasoft",
                ParentKey = "NewsIndex"
            });
 
            // Accueil > Gérer les news > Usine
            returnValue.Add(new DynamicNode
            {
                Title = "Usine",
                Controller = "News",
                Action = "Factory",
                Key = "Factory",
                ParentKey = "NewsIndex"
            });
 
            // Accueil > Gérer les news > Formulaire de création de news
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de création de news",
                Controller = "News",
                Action = "Create",
                Key = "NewsCreate",
                ParentKey = "NewsIndex"
            });
 
            // Accueil > Gérer les news > Formulaire de mise à jour de news
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de news",
                Controller = "News",
                Action = "Edit",
                Key = "NewsEdit",
                ParentKey = "NewsIndex"
            });*/
 
            /******************************************************************
             * Order Controller
             *****************************************************************/
            /*if (UserRole == "customer")
            {
                // Accueil > Liste des commandes
                returnValue.Add(new DynamicNode
                {
                    Title = "Liste des commandes",
                    Controller = "Order",
                    Action = "Index",
                    Key = "OrderIndex",
                    ParentKey = "Home"
                });
            }*/
 
            /******************************************************************
             * SaleAgent Controller
             *****************************************************************/
            // Accueil > Gérer les agents commerciaux
            /*returnValue.Add(new DynamicNode
            {
                Title = "Gérer les agents commerciaux",
                Controller = "SaleAgent",
                Action = "Index",
                Key = "SaleAgentIndex",
                ParentKey = "HomeIndex"
            });
 
            // Accueil > Gérer les agents commerciaux > Formulaire de création de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de création de compte",
                Controller = "SaleAgent",
                Action = "Create",
                Key = "SaleAgentCreate",
                ParentKey = "SaleAgentIndex"
            });
 
            // Accueil > Gérer les agents commerciaux > Formulaire de mise à jour de compte
            returnValue.Add(new DynamicNode
            {
                Title = "Formulaire de mise à jour de compte",
                Controller = "SaleAgent",
                Action = "Edit",
                Key = "SaleAgentEdit",
                ParentKey = "SaleAgentIndex"
            });*/
 
            return returnValue;
        }
 
        public override CacheDescription GetCacheDescription()
        {
            return new CacheDescription("StoreDetailsDynamicNodeProvider")
            {
                SlidingExpiration = TimeSpan.FromMinutes(0)
            };
        } 
    }
}
Mvc.sitemap
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0 MvcSiteMapSchema.xsd"
            enableLocalization="true">
 
  <mvcSiteMapNode title="Accueil" controller="Home" action="Index" key="HomeIndex" dynamicNodeProvider="CheckpointWeb.Helpers.DynamicNodeProvider, CheckpointWeb"/>
 
  <!--<mvcSiteMapNode title="Accueil" controller="Home" action="Index">
    <mvcSiteMapNode title="À propos de" controller="Home" action="About"/>
    <mvcSiteMapNode title="Contactez-nous" controller="Home" action="Contact"/>
    <mvcSiteMapNode title="Mentions légales" controller="Home" action="Legal"/>
 
    <mvcSiteMapNode title="Connexion" controller="Account" action="Login"/>
 
    <mvcSiteMapNode title="Gérer les administrateurs" controller="Admin" action="Index">
      <mvcSiteMapNode title="Formulaire de création de compte" controller="Admin" action="Create"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de compte" controller="Admin" action="Edit"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de compte" controller="Admin" action="Settings"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de compte" controller="Admin" action="SetTheme"/>
    </mvcSiteMapNode>
 
    <mvcSiteMapNode title="Gérer les clients" controller="Customer" action="Index">
      <mvcSiteMapNode title="Formulaire de création de compte" controller="Customer" action="Create"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de compte" controller="Customer" action="Edit"/>
      <mvcSiteMapNode title="Liste des commandes" controller="Order" action="Index"/>
    </mvcSiteMapNode>
 
    <mvcSiteMapNode title="Gérer les news" controller="News" action="Index">
      <mvcSiteMapNode title="Formulaire de création de news" controller="News" action="Create"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de news" controller="News" action="Edit"/>
      <mvcSiteMapNode title="Usine" controller="News" action="Factory"/>
      <mvcSiteMapNode title="Ramasoft" controller="News" action="Ramasoft"/>
    </mvcSiteMapNode>
 
    <mvcSiteMapNode title="Gérer les agents commerciaux" controller="SaleAgent" action="Index">
      <mvcSiteMapNode title="Formulaire de création de compte" controller="SaleAgent" action="Create"/>
      <mvcSiteMapNode title="Formulaire de mise à jour de compte" controller="SaleAgent" action="Edit"/>
    </mvcSiteMapNode>
  </mvcSiteMapNode>-->
 
</mvcSiteMap>
Seule "Accueil" apparait dans mon fil d’Ariane, car celui-ci a été renseigné en dur dans mon projet.

Qu'ai-je oublier ? j'en deviens dingue, ça fait des heures que je tourne en rond sur google :/.
Merci.