我有一个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.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选项卡布局。效果很好。_webcams.cshtml部分包含一个引导旋转木马。
在查看了ajax响应之后,HTML部分调用将返回完整的布局(这再次包括引导,从而破坏了旋转木马)。为了验证这一点,我尝试让天气/天气控制器/动作点直接指向部分(作为上面的注释),而当我直接转到天气/天气(从而验证我的部分包括周围的_layout.cshtml代码)时,旋转木马工作。
我尝试过the solutions here,但是要么我做错了(告诉分部不要使用布局),要么$().load()函数的行为与正常的ajax调用不同。
有人能说明一下发生了什么事吗?
发布于 2018-05-25 03:03:45
$().load()和$.ajax有着明显的差异。
我不知道引擎盖下的区别是什么,但将我的$().load更改为$.ajax调用解决了这个问题。
https://stackoverflow.com/questions/50520570
复制相似问题