2015-10-06 72 views
1

我有一个简单的函数,用于在我的数据库中搜索我想要的项目并在控制器中检索它。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); 
     } 
    }) 
}) 

但是当然这一切它返回的是控制台窗口中我的看法是这样的: enter image description here

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

回答

2

只使用Json Action方法。

return Json(user); 

编辑:

作为一个方面说明,我也把我的返回类型是JsonResult为清楚起见

+0

完美! 有没有办法改变返回的json对象的名称?它回来了'Array [1]'。 –

+1

我假设Array [1]是从console.log(saveResult)调用显示的内容。如果是这样,那实际上只是存储在saveResult中的内容的描述。您的代码正在返回一个IEnumerable ,该序列化为JS中的一个对象数组。那有意义吗? –

+0

是的,我现在得到它,无论如何它救了我,所以谢谢。 –

1

您刚刚回归的JsonResult如下面:

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