如何使用JavaScript从数据库/模型中获取数据
我是ASP.NET、MVC和AngularJS的新手,所以我仍在努力解决这些问题 我有一个名为Words.cs的模型,其中包含:如何使用JavaScript从数据库/模型中获取数据,javascript,jquery,angularjs,asp.net-mvc,razor,Javascript,Jquery,Angularjs,Asp.net Mvc,Razor,我是ASP.NET、MVC和AngularJS的新手,所以我仍在努力解决这些问题 我有一个名为Words.cs的模型,其中包含: namespace liveSearch.Models { public class Words { public int ID { get; set; } public string Word{ get; set; } } } 数据库中已经填充了数据,我想使用JavaScript/JQuery从数据库中获取每
namespace liveSearch.Models
{
public class Words
{
public int ID { get; set; }
public string Word{ get; set; }
}
}
数据库中已经填充了数据,我想使用JavaScript/JQuery从数据库中获取每个单词,这样我就可以用JavaScript等操作这些数据
我目前在我的index.cshtml中有Razor,它可以:
@{
foreach (var item in Model)
{
<li>
@Html.DisplayFor(modelItem => item.Word)
</li>
}
}
@{
foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.Word)
}
}
这在获取和显示模型中的所有单词时起作用,但我想摆脱Razor,改用JavaScript/Jquery获取数据
理想情况下,我希望从DB中获取所有单词(我不关心ID),并将其添加到.js文件作用域中的数组中
问题是我不知道如何使用JavaScript或AJAX访问数据库
我想我可以使用$.get()
或$.ajax()
,但我真的不知道如何在DB/模型中使用它
我还读了其他一些关于Stackoverflow的帖子,上面说这是可以做到的,但出于某种原因,我无法将这些例子应用到我的案例中。你可以在页面加载时调用此方法,或者在想要得到结果的地方单击按钮
$.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
}
});
首先,您需要在控制器中创建一个操作方法,该方法返回
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#)
}
});
因此,您需要调用WbApi/控制器方法from@ajax然后使用返回数据并在UI中显示为什么要这样做。您只需使用
var words=@Html.Raw(Json.Encode(model)),将视图中的模型分配给javascript数组即可
(然后words[0]。Word
将返回集合中第一个Word
属性的值。contentType:'application/json;charset=utf-8',
是无意义的(它是一个GET,而GET没有主体)。你说得对,我将立即编辑它。谢谢你的更正。我发现了这个错误:在@Url.Action()
上的“加载资源失败:服务器响应状态为404(未找到)”,我只希望您没有写“ControllerName”而不是控制器的名称。@Url.Action
是一个帮助器方法,在本例中获取两个参数:第一个是控制器的名称,第二个是操作的名称。因此,如果控制器的名称(操作“SomeAction”在中定义)是HomeController,则@Url.action
将如下所示:@Url.action(“Home”,“SomeAction”)
相反,您可以只编写指向您的操作的链接:url:'/Home/SomeAction'
,但在asp.net mvc中,这是一种更方便的方式(因为路由)。contentType:'application/json;charset=utf-8',
是毫无意义的(它是一个GET,一个GET没有主体)