В меню Telerik MVC не отображаются дочерние элементы

#asp.net #asp.net-mvc #telerik

#asp.net #asp.net-mvc #telerik

Вопрос:

У меня есть следующее расширение меню Telerik MVC, и оно ведет себя так, как ожидалось, в одном проекте, а не в другом. Я безуспешно пытался определить различия между проектами, и я даже скопировал и вставил меню из рабочего проекта в нерабочий.

Когда я говорю «рабочий» и «нерабочий», я имею в виду, что в рабочем проекте стиль меню выглядит правильно, а при наведении курсора мыши на пункт меню раскрываются подпункты. В нерабочем проекте оформление выглядит незавершенным, и наведение курсора мыши на пункт меню ничего не дает.

 <div style="text-align: left; clear: left;">
            @(Html.Telerik().Menu()
               .Name("TopMenu")
               .Orientation(MenuOrientation.Horizontal)
               .Items(menu =>
                   {
                       menu.Add().Text("Rate Cards").Action("Index", "RateCard");
                       menu.Add().Text("Campaigns").Action("Index", "Campaign");
                       menu.Add().Text("Contracts").Action("Index", "Contract").Enabled(false);
                       menu.Add().Text("Sites").Action("Index", "Site");
                       menu.Add().Text("Products").Action("Index", "Product");
                       menu.Add().Text("Config").Items(submenu =>
                               {
                                   submenu.Add().Text("Suburbs").Action("Index", "Suburb");
                                   submenu.Add().Text("Cities").Action("Index", "City");
                                   submenu.Add().Text("Provinces").Action("Index", "Province");
                               });                                         
                   })
               .HighlightPath(true)
               .ItemAction(item =>
                   {
                       if (item.Selected)
                           item.HtmlAttributes["class"] = "t-state-selected";
                   })
            )
</div>
  

Ответ №1:

пожалуйста, отследите файлы javascript, загруженные как в рабочий, так и в нерабочий проект. Меню довольно простое и не использует какую-либо модель (набор статических текстовых значений), поэтому единственное, что может создать проблему, — это отсутствие js-файла

Комментарии:

1. Спасибо. Я уже обнаружил, что пропустил вызов ScriptRegistrar.

Ответ №2:

Вероятно, не удалось загрузить файл JavaScript или CSS (возможно, оба).

Проверьте с помощью какой-либо программы для веб-разработчика (FireBug, IE или Chrome dev tools), нет ли сбоев в HTTP-запросах. Также, если вы используете комбинацию ресурсов, убедитесь, что HTTP-обработчик asset.axd правильно зарегистрирован в вашем web.config. Проверьте эту справочную статью для правильной настройки.

Ответ №3:

Просто добавьте это в конце вашего основного макета

@Html.Telerik().ScriptRegistrar()

Примечание: Пожалуйста, убедитесь, что у вас есть все скрипты и CSS-файлы в папках Content и Script.

Тэлли

Комментарии:

1. в любом случае, спасибо, просто немного опоздал. Я принял ответ здесь в прошлом году.