我已经看到很多关于MVC4中与json相关的堆栈溢出的问题但是无法理解错误的原因 这是我的客户端jquery代码
function Find() {
var query = $('#bloodgroup').val();
var text = "<ul>";
if (query.length == 0)
text += "<li>Please Select some blood group</li></ul>";
if (text.length > 5) {
$('#q').css('color', 'red');
$('#q').html(text);
return false;
}
$.getJSON("/home/SimpleSearchResult", { q: query })
.done(function (data) {
alert(data)
$.each(data, function (i, item)
{
})
})
.fail(function (jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
alert(err);
});
}
我的控制器操作方法如下
public JsonResult SimpleSearchResult()
{
string query = Request["query"];
string q=Request["q"];
var cx = new tempEntities();
var list = cx.Users.Where(x => x.Blood.Contains(q)).Select(x => new { x.FullName,x.Blood,x.Cell,x.Email}).ToList();
return this.Json(list,JsonRequestBehavior.AllowGet);
}
当我调试此代码时,控制器返回的结果成功返回但是在jquery代码中.fail执行回调。无法理解错误的原因。 在这方面请帮助我
答案 0 :(得分:1)
如果是选项,请尝试使用ajax
$.ajax({
url: '@Url.Action("SimpleSearchResult", "home")',
type: 'post',
cache: false,
async: true,
data: { q : query },
success: function(data){
console.log(data);
$.each(data, function (i, item)
{
})
}
});
答案 1 :(得分:0)
你能试试吗?
$.getJSON("/home/SimpleSearchResult", {
q: 'yourquerystringvaluehere'
}, (function (data) {
alert(data)
$.each(data, function (i, item) {
//do required action
})
}))
.fail(function (jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
alert(err);
});