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"}); 
} 
相關問題