MVC5使用ajax检索数据,返回json对象而不是视图

时间:2015-10-06 14:11:56

标签: json model-view-controller asp.net-mvc-5

我有一个简单的函数,可以在我的数据库中搜索我想要的项目并在我的控制器中检索它。

[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);
        }
    })
})

但是当然所有这一切都会在控制台窗口中返回我的视图,如下所示: enter image description here

但我想返回一个我可以使用的json对象。

2 个答案:

答案 0 :(得分:2)

只需使用Json Action方法。

$state.go('app.dayliston', {mode: 'online'});

编辑:

作为旁注,为了清晰起见,我还将我的返回类型设置为JsonResult

答案 1 :(得分:1)

您只需返回JsonResult,如下所示:

 public ActionResult SomeActionMethod() {
  return Json(new {foo="bar", baz="Blech"});
}