C# MVCAJAX返回的是部分布局,而不是部分布局

C# MVCAJAX返回的是部分布局,而不是部分布局,c#,jquery,asp.net-mvc,twitter-bootstrap-3,partial-views,C#,Jquery,Asp.net Mvc,Twitter Bootstrap 3,Partial Views,我有一个带有家庭控制器和天气控制器的MVC网站。home controller加载起始页(索引)并提供许多选项,所有这些选项都通过ajax.load加载内容: … LoadContent执行以下操作: function LoadContent(url){ try { $("#divMainContent").load(url, function () { //do visual graphic stuff here ...

我有一个带有家庭控制器和天气控制器的MVC网站。home controller加载起始页(索引)并提供许多选项,所有这些选项都通过ajax.load加载内容:

  • LoadContent执行以下操作:

    function LoadContent(url){
        try {
            $("#divMainContent").load(url, function () {
                //do visual graphic stuff here
                ...
            });
        } ...
    }
    
    <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>
    
    Weather/Weather controller/view在后端调用天气api,并按如下方式传递模型:

    public ActionResult Weather()
        {
            //api stuff
            ...
            return View(weatherObj);
            //return View("_webcams", weatherObj);
        }
    
    当我单击列表项以加载我想要的部分时,它将加载Weather/Weather.cshtml视图。它包括以下内容:

    function LoadContent(url){
        try {
            $("#divMainContent").load(url, function () {
                //do visual graphic stuff here
                ...
            });
        } ...
    }
    
    <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>
    
    
    
    ... @Html.Partial(“~/Views/Weather/\u webcams.cshtml”)
    这是一个jquery ui选项卡布局。很好。_webcams.cshtml部分包含一个引导转盘

    查看ajax响应后,HTML部分调用返回完整的布局(其中再次包括引导,从而打破了旋转木马)。为了验证这一点,我尝试让Weather/Weather controller/action直接指向partial(如上面的注释所示),当我直接转到Weather/Weather(从而验证我的partials是否包括周围的_layout.cshtml代码)时,转盘工作

    我已经尝试过了,但要么我做得不对(告诉partial使用no layout),要么$().load()函数的行为与普通ajax调用不同


    有人能解释一下发生了什么吗?

    $().load()
    $.ajax
    之间有着明显的区别


    我不知道引擎盖下的区别是什么,但是将我的
    $().load
    更改为
    $.ajax
    调用解决了这个问题。

    您是否尝试过
    返回PartialView(“~/Views/Weather/\u webcams.cshtml”,weatherObj)
    在控制器操作中?虽然这只返回部分网络摄像头,而不是我想要的最终响应,但我有,并且部分渲染正确,旋转木马工作。所以,是的!我有。我甚至链接到它,说那里的解决方案或者不工作,因为我使用了$().load,否则我实现的解决方案是错误的。它必须是
    返回PartialView(weatherObj);
    ,除非我直接浏览到Weather/Weather,否则它不会工作。因此,如果我通过ajax加载它,它不会工作。