2015-06-08 43 views
7

我想在使用JQuery Ajax的容器div中呈现局部视图。 这里是我的AJAX调用:JQuery Ajax,没有回调函数在ASP.NET MVC 5中运行

var href = { 
    href: $(this).attr("href").substr(1) 
} 
var container = $(".customer-main-content-container"); 
$.ajax({ 
    url: "@Url.Action(" CustomerMenuSelection ")", 
    type: "POST", 
    dataType: "html", 
    contentType: "application/json", 
    data: JSON.stringify(href), 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert("ERROR: " + errorThrown.text()); 
    }, 
    success: function (result) { 
     container.empty(); 
     container.html(result).show(); 

    } 
}); 

更新

这里是我的动作代码:

public ActionResult CustomerMenuSelection(string href) 
{ 
    var user = GetCurrentUser(); 
    var tempSensorTree = _prtgClient.GetPrtgSensorTree(user.TempPrtgGroupId.ToString()); 
    var tempDevices = tempSensorTree.Sensortree.Nodes.Group.Device; 

    return PartialView("_Monitor", tempDevices); 
} 

我已经通过我的行动,随后电话,发现它确实将所有正确的数据回到视图。但是,我的ajax调用没有运行错误或成功回调,我不知道为什么。点击菜单项时会发生这种情况,并且此Ajax调用适用于除此之外的所有其他菜单项。我无法找到页面之间的任何区别。 没有错误发生,我填充视图的数据是正确的。我的ajax调用停止。

总之,为什么我的回调没有被触发?

感谢您的协助! 在此先感谢 Martin Johansson

+1

您是否使用Fiddler或浏览器内置的Network Inspector来查看请求?在特定的视图中是否有内部服务器错误?你也可以尝试在'$ .ajax'调用上添加'complete'回调来查看它是否被触发。 –

+0

我在等待了很长一段时间之后才看到,我的浏览器中出现Connection Refused错误,但在Fiddler中找不到它。 –

+0

图沙尔“这个”应该是我的菜单按钮。该脚本处于点击事件中。 –

回答

1

此问题可能是由于dataType您期待从服务器。当您从服务器返回部分视图时,请尝试将其更改为"html"

dataType: "html" 
+0

我在开始测试之前使用了“html”。我害怕发生同样的问题。 –

+0

您是否在成功和错误上放置了断点,或者在回调中检查了一些值并进行了检查? –

+0

是的,我在错误和成功中都加入了断点,我把警报都放在了两个位置,而且我检查了控制台,几分钟后我就收到拒绝连接。 –