меню навигации не перенаправляет на заданное значение - PullRequest
0 голосов
/ 18 марта 2011

проблема, которую я включил, касается перенаправления в меню навигации. Я бы хотел динамически создать навмену. В зависимости от того, какую роль играет пользователь, мы видим необходимые пункты меню навигации. На данный момент я использую:

if (found)
            {
                if (admin == true)
                {
                    NavigationMenu.Items.Add(new MenuItem("Agenda", "/AdminPages/Agenda.aspx"));
                    NavigationMenu.Items.Add(new MenuItem("Add Product", "/AdminPages/ProductToevoegen.aspx"));
                }
                else if (user == true)
                {}

Этот код я поместил в свой Site.master.cs, но у меня также есть элемент управления в моем коде login.aspx.cs, который делает Response.Redirect("~/AdminPages/Agenda.aspx"); для определенной страницы в зависимости от администратора или пользователя, который вошел в систему. Теперь у меня проблема в том, что когда я вхожу в систему, часть работает, поэтому она контролирует роль и добавляет необходимые пункты меню навигации. Но когда я нажимаю, например, на ссылку Добавить продукт, он не перенаправляет меня на страницу. Он продолжает перенаправлять меня на:

http://localhost:52853/AdminPages/Agenda.aspx

В строке URL-адреса фактически отображается URL-адрес, за которым следует нажатие знака # и затем перенаправление на страницу повестки дня.

Есть идеи, как решить эту проблему? Я попытался найти способ поместить ссылки навигации в код login.aspx.cs, но не смог найти правильный способ ссылки на NavigationMenu, не знаю, может ли это быть какая-то помощь. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 21 марта 2012

Посмотрите на параметры для создания нового MenuItem.

Когда передаются только 2 параметра, вы заполняете параметры типа text и value.То, что вы хотите передать, это параметр navigateUrl.Это доступно только при передаче параметра imageURL (который может быть пустым).

Что-то вроде следующего должно решить вашу проблему.

NavigationMenu.Items.Add(new MenuItem("Agenda", "", "", "/AdminPages/Agenda.aspx"));

Надеюсь, это поможет.

0 голосов
/ 18 марта 2011

Хм, возможно, не правильный путь, но я исправил это, создав, например, другое меню в файле site.master.aspx под названием MenuAdmin.Чем в коде позади я установил

NavigationMenu.visible = false;

и

MenuAdmin.visible = true;

Кажется, работает нормально, делает то, что нужно сделать сейчас;)

0 голосов
/ 18 марта 2011

Я бы предложил использовать стандартный объект siteMap и RoleProvider. И прочитайте немного о настройке безопасности (вы можете указать на узлах карты сайта, какие роли могут получить доступ к каким сайтам).

...