У меня есть веб-сайт MVC с домашним контроллером и погодным контроллером.Домашний контроллер загружает стартовую страницу (индекс) и предоставляет несколько вариантов, которые все загружают контент через ajax.load таким образом:
<li onclick="LoadContent('/Weather/Weather');">...</li>
LoadContent выполняет следующие действия:
function LoadContent(url){
try {
$("#divMainContent").load(url, function () {
//do visual graphic stuff here
...
});
} ...
}
Контроллер / вид Погода / Погода вызывает API-интерфейс погоды на бэкэнде и передает модель следующим образом:
public ActionResult Weather()
{
//api stuff
...
return View(weatherObj);
//return View("_webcams", weatherObj);
}
Когда я нажимаю на элемент списка, чтобы загрузить нужную часть, оназагружает представление Weather / Weather.cshtml.Он включает в себя следующее:
<div id="tabs">
<ul>
<li>...</li>
<li><a href="#tabs-6">Webcams</a></li>
</ul>
...
<div id="tabs-6">
@Html.Partial("~/Views/Weather/_webcams.cshtml")
</div>
</div>
Это макет вкладки jquery ui.Работает отлично.Часть _webcams.cshtml содержит загрузочную карусель.
Посмотрев на ответ ajax, частичный вызов HTML возвращает полный макет (который снова включает в себя загрузку, таким образом нарушая карусель).Чтобы убедиться в этом, я попытался заставить контроллер погоды / погоды / точку действия непосредственно к частичному (как комментарий выше), и карусель работает, когда я перехожу непосредственно к погоде / погоде (таким образом проверяя, что мои частичные объекты включают окружающее _layout.cshtml code.
Я пробовал решения здесь , но я либо делаю это неправильно (говорю частичному, чтобы не использовать макет), либо функцию $ (). load ()ведет себя не так, как обычный вызов ajax.
Может ли кто-то пролить свет на то, что происходит?