我通常使用ASP.NET MVC 2,但是它有一些问题,所以我开始使用ASP.NET MVC 2 + jQuery,一切正常。但是有一个问题,jQuery没有加载我的响应。在ASP.NET MVC方面,我正在查看部分视图,我也在客户端上得到了响应,但没有呈现任何内容。我该如何解决这个问题?
这是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 };
};
答案 0 :(得分:3)
问题看起来像location.reload();
在您使用AJAX更新页面后重新加载页面,有效地将其状态恢复为之前插入内容.replaceWith()
更新:看起来你正在使用dataType: "json"
并将其插入DOM?这可能也是一个问题。如果视图以HTML格式返回,则应将其替换为dataType: "html"
答案 1 :(得分:1)
@Konrad,尝试使用JSON2库(http://www.json.org/js.html)来警告成功函数中的“partialView”对象,以便在重新加载页面之前查看您获得的内容。另外,确保$('#Credentials')正在返回一个对象。当我在尝试选择页面上的元素时遇到问题时,我通常会检查返回的jQuery对象的长度值。如果length = 0,那么你没有得到元素。
更新: 此外,如果您尝试将HTML注入$('#Credentials'),则partialView可能不是正确的格式。 success函数接受一个对象参数,该参数来自解析您调用的Web方法的responseText,以获得您所谓的partialView。
更新: 使用$ .ajax查看http://encosia.com/2010/03/03/asmx-and-json-common-mistakes-and-misconceptions/以获取更多信息。这个博客上有很多很棒的信息。
更新: 这是我使用JSON lib查看返回的数据的方法。 警报(JSON.stringify(partialView));