Я использую 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 и большинство скриптов