Json返回问题
我刚刚将VS2010、MVC2、jQuery 1.7应用程序升级到VS2012、MVC5和jQuery 1.10 该应用程序使用MicrosoftAjax.js和MicrosoftMvcAjax.js 我正在发布一个表单,该操作将返回一个json结果。为此,我在客户端遇到以下错误:Json返回问题,json,jquery,asp.net-mvc-5,Json,Jquery,Asp.net Mvc 5,我刚刚将VS2010、MVC2、jQuery 1.7应用程序升级到VS2012、MVC5和jQuery 1.10 该应用程序使用MicrosoftAjax.js和MicrosoftMvcAjax.js 我正在发布一个表单,该操作将返回一个json结果。为此,我在客户端遇到以下错误: TypeError: context.get_data is not a function var json = context.get_data(); TypeError: context.get_object
TypeError: context.get_data is not a function
var json = context.get_data();
TypeError: context.get_object is not a function
var json = context.get_object().get_data();
请注意,原始代码使用的是context.get_data()。错误发生后,我将其更改为context.get_object().get_data()
我还尝试按照以下方式对json结果进行编码,但仍然会导致相同的错误:
public JsonResult AddJsonUtf8Encoding(JsonResult result)
{
result.ContentEncoding = System.Text.Encoding.UTF8;
result.ContentType = "application/json; charset=UTF-8";
return result;
}
页面上的javascript:
var MvcTopBarLogin =
{
beginAjaxForm: function () {
$('#msgboxSignInTopBar').removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
},
successAjaxForm: function (context) {
**var json = context.get_object().get_data();**
//var json = context.get_data();
var data = Sys.Serialization.JavaScriptSerializer.deserialize(json);
if (data.IsError) {
if (data.IsGone) {
window.location.href = data.RedirectUrl;
}
else {
$('#msgboxSignInTopBar').fadeTo(200, 0.1, function () {
$(this).html(data.Message).addClass('messageboxerror').fadeTo(900, 1).delay(3000).fadeOut(1000);
});
}
}
else {
if (data.RedirectUrl == "")
window.location.reload();
else
window.location.href = data.RedirectUrl;
}
}
}
html:
x、 RawUrl)%%>
密码
x、 密码,新的{@class=“textBox swap_value”,tabIndex=2})%>
用户名
x、 用户名,新的{@class=“textBox swap_value”,tabIndex=1})%>
谢谢你的关注 这与编码有关:
var MvcTopBarLogin =
{
beginAjaxForm: function () {
$('#msgboxSignInTopBar').removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
},
successAjaxForm: function (context) {
//var json = context.get_object().get_data();
//var json = context.get_data();
//var json = context.get_response().get_object().get_data();
var data = context; //Sys.Serialization.JavaScriptSerializer.deserialize(json);
if (data.IsError) {
if (data.IsGone) {
window.location.href = data.RedirectUrl;
}
else {
$('#msgboxSignInTopBar').fadeTo(200, 0.1, function () {
$(this).html(data.Message).addClass('messageboxerror').fadeTo(900, 1).delay(3000).fadeOut(1000);
});
}
}
else {
if (data.RedirectUrl == "")
window.location.reload();
else
window.location.href = data.RedirectUrl;
}
}
};
这与编码有关:
var MvcTopBarLogin =
{
beginAjaxForm: function () {
$('#msgboxSignInTopBar').removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
},
successAjaxForm: function (context) {
//var json = context.get_object().get_data();
//var json = context.get_data();
//var json = context.get_response().get_object().get_data();
var data = context; //Sys.Serialization.JavaScriptSerializer.deserialize(json);
if (data.IsError) {
if (data.IsGone) {
window.location.href = data.RedirectUrl;
}
else {
$('#msgboxSignInTopBar').fadeTo(200, 0.1, function () {
$(this).html(data.Message).addClass('messageboxerror').fadeTo(900, 1).delay(3000).fadeOut(1000);
});
}
}
else {
if (data.RedirectUrl == "")
window.location.reload();
else
window.location.href = data.RedirectUrl;
}
}
};
我还检查了“context.get_response().get_object()”,这导致了相同的错误。我还检查了“context.get_response().get_object()”,这导致了相同的错误。