jQuery没有加载响应
我通常使用ASP.NET MVC 2,但是它有一些问题,所以我开始使用ASP.NET MVC 2 + jQuery并且一切正常。但有一个问题,jQuery不会加载我的响应。在ASP.NET MVC方面,我重申了一个局部视图,我也得到了客户端上的响应,但没有任何呈现。我该如何解决这个问题?jQuery没有加载响应
这里是jQuery代码:
function addCredential(state, id) {
var daten = getJson(state, id);
$.ajax(
{
type: "POST",
url: "/Account/SetCredential/",
data: daten,
dataType: "json",
success: function(partialView) {
$('#Credentials').replaceWith(partialView);
location.reload();
}
});
return true;
};
function getJson(state,id) {
var username = $('#username').val();
return {"username": username, "credential_id": id , "state": state };
};
问题看起来像location.reload();
那之后你重装页面AJAX更新,有效地恢复它的状态恢复到它之前是方式你插入的内容与.replaceWith()
更新:看起来像你使用dataType: "json"
并插入到DOM?这可能也是一个问题。如果视图以HTML格式返回,则应将其替换为dataType: "html"
我的问题是,没有什么刷新页面...如果我重新加载页面(与F5按钮)我的自我的一切都corret但jquery dosen't这样做,我应该尝试一个jQuery的旧版本? – Konrad 2010-08-26 12:24:27
您的代码意外行为可能有多种原因。你有用于FireFox的Firebug吗?如果是这样,摆脱'location.reload()'并检查控制台的a)javascript错误或b)来自服务器的响应问题。您也可以考虑使用jQuery的'.append()'或'.appendTo()'方法而不是'replaceWith()',尽管我会尝试作为最后的手段,因为问题很可能在其他地方。 – Stephen 2010-08-26 13:21:38
使用'location.reload()'总会给你想要达到的目的,所以一定要删除它。 – Stephen 2010-08-26 13:23:07
@Konrad,请尝试使用JSON2库(http://www.json.org/js.html)在成功函数中警告“partialView”对象,以查看您之前获得的内容重新加载页面。另外,确保$('#Credentials')正在返回一个对象。当我尝试在页面上选择元素时遇到问题时,通常会检查返回的jQuery对象的长度值。如果长度= 0,那么你没有获得元素。此外,如果您尝试将HTML注入$('#Credentials'),partialView可能不是正确的格式。成功函数接受一个对象参数,它来自解析你调用的web方法的responseText以获得你所说的partialView。
更新: 请查阅http://encosia.com/2010/03/03/asmx-and-json-common-mistakes-and-misconceptions/了解更多信息,使用$ .ajax。在这个博客上有很多很棒的信息。
更新: 这是我如何使用JSON库来查看返回的数据。 alert(JSON.stringify(partialView));
Thx为您提供帮助dataType是问题所在。 – Konrad 2010-08-27 07:09:50
什么是'location.reload()'调用?这将刷新页面:) – 2010-08-26 12:08:21
这只是一个尝试thx的评论 – Konrad 2010-08-27 06:46:57