MVC5使用ajax检索数据,返回json对象而不是视图
问题描述:
我有一个简单的函数,用于在我的数据库中搜索我想要的项目并在控制器中检索它。MVC5使用ajax检索数据,返回json对象而不是视图
[HttpPost]
public ActionResult Index(string searchString)
{
var user = from m in db.Users select m;
if (!String.IsNullOrEmpty(searchString))
{
user = user.Where(s => s.UserName.Contains(searchString));
}
return View(user);
}
然后在我的JavaScript我送的值来搜索:
$('#test').click(function(e) {
e.preventDefault();
var user = "John";
$.ajax({
url: "@Url.Action("Index", "Users")",
data { "searchString": user },
type: "post",
success: function (saveResult) {
console.log(saveResult);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(xhr, ajaxOptions, thrownError);
}
})
})
但我想返回一个我可以使用的对象json
。
答
只使用Json Action方法。
return Json(user);
编辑:
作为一个方面说明,我也把我的返回类型是JsonResult为清楚起见
答
您刚刚回归的JsonResult如下面:
public ActionResult SomeActionMethod() {
return Json(new {foo="bar", baz="Blech"});
}
完美! 有没有办法改变返回的json对象的名称?它回来了'Array [1]'。 –
我假设Array [1]是从console.log(saveResult)调用显示的内容。如果是这样,那实际上只是存储在saveResult中的内容的描述。您的代码正在返回一个IEnumerable,该序列化为JS中的一个对象数组。那有意义吗? –
是的,我现在得到它,无论如何它救了我,所以谢谢。 –