CSS не загружается из-за div в Visual Studio MVC - PullRequest
0 голосов
/ 16 марта 2019

Я использую Visual Studio 2013 MVC, и у меня есть _Layout, в котором есть шаблон, все скрипты загружаются в мой индекс просмотра, а в моем _layout у меня есть панель навигации, предполагается, что панель навигации имеет раскрывающееся меню сообщений, которое использует много CSS и JS.

Когда я загружаю сообщения как частичное представление, все работает, но когда я пытаюсь использовать JQuery для самостоятельной перезагрузки данных, я должен поместить их в div. Это нарушает весь стиль, как если бы не было Css, я также пытался просто изменить идентификатор родительского div, и это также нарушает стиль. Я использую AdminLTE 2.

Примеры:

когда это так, это работает

<li class="dropdown notifications-menu">
  <!-- Menu toggle button -->
  @Html.Action("Notifications", "Home")
</li>

просто изменить его на это нарушает стиль

<li class="dropdown notifications-menu">
  <!-- Menu toggle button -->
  <div>
    @Html.Action("Notifications", "Home")
  </div>
</li>

Кроме того, вот как я перезагружаю эту часть

<script>
  window.onload = function () {
    refreshNotifications();
  }

  function refreshNotifications() {
    console.log("Reload...");
    $.ajax({
      url: 'Home/Notifications',
      type: 'get',

      success: function(result) {
        //$("#partialsgpthing").html(result);

        // $("#navbar").html(result);
      }
  });

  setTimeout('refreshNotifications()', 30000);
}
</script>

И я использую public PartialViewResult Notifications() в моем контроллере

и частичное представление таково:

<a href="#" class="dropdown-toggle" data-toggle="dropdown">
    <i class="fa fa-bell-o"></i>
    <span class="label label-warning">@ViewBag.Notifications</span>
</a>
<ul class="dropdown-menu">
    <li class="header">Tiene @ViewBag.Notifications notificaciones</li>
    <li>
        <!-- Inner Menu: contains the notifications -->
        <ul class="menu" style=" max-height: 200px; margin: 0; padding: 0; list-style: none; overflow-x: hidden;">
            @foreach (string notification in ViewBag.NotificationMsgs) {
            <li>
                @{string[] detail = notification.Split('|');}

                <!-- start notification -->

                <a href="@detail[8]">
                    <i class="fa @detail[3] @detail[4]"></i> @detail[5]<br />@detail[2]
                </a>
            </li>
            }
            <!-- end notification -->
        </ul>
    </li>
    <li class="footer"><a href="#">Ver todas</a></li>
</ul>

Как заставить стиль работать или использовать другой метод для постоянной перезагрузки этой части? Я думаю, в основном все, что не использует div, будет работать.

Я загружаю данные из базы данных, поэтому они должны проходить через контроллер.

на _layout Я поместил только <body> из adminlte, затем в основную область страницы я поместил @renderbody(), который отображает индекс. индекс содержит шаблон Adminlte и большинство скриптов

1 Ответ

0 голосов
/ 16 марта 2019

со стилями

<style type="text/css">
    .dropdown {font-size:2em;} 
    .notifications-menu {color:red;} 
    .dropdown div, .notifications-menu div {font-weight:bold;}
</style>

и элементы списка

<ul>
    <li class="dropdown notifications-menu">
        <!-- Menu toggle button -->
        @Html.Action("Notifications", "Home") 
    </li>
</ul>
<ul>
    <li class="dropdown notifications-menu">
        <!-- Menu toggle button -->
        <div>
            @Html.Action("Notifications", "Home")
        </div>
    </li>
</ul>

Я не вижу различий в эффектах стилей, предоставляемых селекторами классов .dropdown или .notifications-menu, и дополнительная специфичность для элементов div также работает, как и ожидалось. Как объявлены ваши селекторы стиля?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...