Member 8583441 Ответов: 1

Навигация по меню с помощью URL-адреса SQL server


Я получаю панель навигации и данные из SQL Server 2012 и использую Visual Studio 2015 Enterprise Edition. Родительский узел строки меню переносится на следующую страницу, но когда мне требуется страница aspx изнутри папки, она не переносится на страницу.

Что я уже пробовал:

Этот блок foreach записывается в функцию:
foreach (DataRowView row in view)
{
    MenuItem menuItem = new MenuItem(row["MenuName"].ToString(), row["MenuID"].ToString());
    menuItem.NavigateUrl = row["Menu_Url"].ToString();
    Menu1.Items.Add(menuItem);
    AddChildItems(table, menuItem);
}


Функция AddChildItems:
DataView viewItem = new DataView(table);
viewItem.RowFilter = "Menu_Parent_ID= " + menuItem.Value;
foreach (DataRowView childView in viewItem)
{
    MenuItem childItem = new MenuItem(childView["MenuName"].ToString(),
    childView["MenuID"].ToString());
    childItem.NavigateUrl = childView["Menu_Url"].ToString();
    menuItem.ChildItems.Add(childItem);
    AddChildItems(table, childItem);
}


используя эти две функции, я получаю данные из SQL Server, но когда я инициализировал отдельную папку страницы aspx и получил доступ к URL-адресу из SQL Server, он не передает страницу, что я делаю неправильно, может ли кто-нибудь объяснить мне. Эти две функции вызываются на главной странице

1 Ответов

Рейтинг:
6

F-ES Sitecore

Вам нужно сохранить URL-адреса в поле Menu_Url как виртуальные URL-адреса, которые являются URL-адресами в этом формате

~/По умолчанию.aspx-файл
~/Продукта/Вид.aspx-файл

в основном он использует "~" как значение корня вашего сайта. Когда вы устанавливаете свойство NavigationUrl серверного элемента управления, такого как ссылка и т. д., Он понимает этот формат и гарантирует, что ссылка действительна независимо от того, где вы находитесь на сайте.

Если ваш следующий вопрос заключается в том, как исправить это без изменения данных в вашей базе данных, то в первую очередь важно хранить данные в правильном формате. Не храните "плохие" данные, а затем попытайтесь приспособить эти плохие данные в другом месте, что просто приведет к всевозможным проблемам. Получите ваши данные с самого начала, и все станет проще.


Member 8583441

Большое спасибо это работает