2017-01-29 488 views
0

我是ASP.net,MVC和AngularJS的新手,所以我試圖把這一切都弄清楚。如何使用JavaScript從數據庫/模型中獲取數據

我有一個名爲Words.cs型號包含:

namespace liveSearch.Models 
{ 
    public class Words 
    { 
     public int ID { get; set; } 
     public string Word{ get; set; } 
    } 
} 

數據庫已填充了數據,我想使用JavaScript/jQuery來從數據庫中獲取每個所以我然後可以操縱在JavaScript等數據

我現在有剃刀在我index.cshtml其作用:

@{ 
    foreach (var item in Model) 
    { 
     <li> 
      @Html.DisplayFor(modelItem => item.Word) 
     </li> 
    } 
} 

這工作在獲取和顯示模型中的所有單詞,但我想擺脫Razor並使用JavaScript/Jquery獲取數據。

理想情況下,我想從數據庫中獲取所有單詞(我不關心這些ID),並將它添加到.js文件範圍內的數組中。

的問題是,我無法弄清楚如何使用JavaScript訪問數據庫或AJAX

我認爲我可以使用$.get()$.ajax(),但我真的不知道如何與DB使用/模型。

我也讀過一些其他帖子,這裏說Stackoverflow這可以做到,但我不能應用任何這些例子到我的情況出於某種原因。

+0

所以你needto調用從@阿賈克斯WbApi /控制器的方法,並使用返回數據andshow它ui –

+0

你爲什麼要這麼做。你可以簡單地使用'var words = @ Html.Raw(Json.Encode(Model));'(然後'words [0] .Word'將返回第一個' word'屬性 –

回答

0

首先,你需要創建一個操作方法,返回Json,在您的控制器。事情是這樣的:

public JsonResult SomeAction() 
{ 
    var list = context.Words.ToArray(); 
    return Json(list); 
} 

然後在你看來,你只是使用AJAX來獲取數據:

$.ajax({ 
type: 'GET', 
url: '@Url.Action("SomeAction", "ControllerName")', 
dataType: 'json', 
success: function (data) { 
    //the data parameter will be an array of objects. The objects will be of type Words 
    //so data[0].Word(javascript) would be equal to list[0].Word in your SomeAction method(C#) 
} 
}); 
+0

'contentType: 'application/json; charset = utf-8','是沒有意義的(它的GET和GET沒有任何內容) –

+0

你說得對,我馬上編輯。謝謝你的更正。 – Kapobajza

+0

我明白了錯誤:「無法加載資源:服務器響應狀態爲404(未找到)」在@ @ Url.Action()' – user3636407

0

您可以在頁面加載或按鈕點擊的位置調用此方法以獲得結果。

$.ajax({ 
    url: "yourControllerMethod", 


    dataType: "json", 
    success: function(data){ 
    alert(data) 
     // here you will get the json data. 
     // now uisng jQuery you can run a loop and show the data where you want to do 
     } 
}); 
+0

'contentType:'application/json; charset = utf-8','是沒有意義的(它的GET和GET沒有主體) –

+0

@StephenMuecke謝謝指出錯誤編輯 –

相關問題