ASP.NET Web API教程(二) 获取数据
书接上文,打开上一个文章中的项目。(可以从上一个文章中下载到 ASP.NET Web API教程(一) 你的第一个Web API )
添加类库项目 Entities
添加用户实体
public class UserInfo
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
添加数据以及数据操作
private List<UserInfo> Data = new List<UserInfo>() {
new UserInfo(){
Id=1,
Name="哈哈",
Age=10
},
new UserInfo(){
Id=2,
Name="嘿嘿",
Age=19
},
};
public IEnumerable<UserInfo> Get()
{
return Data;
}
new UserInfo(){
Id=1,
Name="哈哈",
Age=10
},
new UserInfo(){
Id=2,
Name="嘿嘿",
Age=19
},
};
public IEnumerable<UserInfo> Get()
{
return Data;
}
添加 UserInfoController
选择 API Controller with empty read/write actions
添加Entities引用
修改Controller的 Get方法
BLL_UserInfo bll = new BLL_UserInfo();
// GET api/userinfo
public IEnumerable<UserInfo> Get()
{
return bll.Get();
}
// GET api/userinfo
public IEnumerable<UserInfo> Get()
{
return bll.Get();
}
后台准备好了,开始编写前台了
添加新页面以及内容
第一步引入js
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script src="Scripts/knockout-2.1.0.js" type="text/javascript"></script>
第二步编写显示模板
<a href="javascript:void()" id="getUserInfos">获取</a>
<ul data-bind="template: {name: 'userinfoTemplate', foreach: userinfos}">
</ul>
<script id="userinfoTemplate" type="text/html">
<li class="userinfo">
<header>
<div class="info">
<strong><span data-bind="text: Name"></span></strong>
</div>
</header>
<div class="body">
<p data-bind="text: Age"></p>
</div>
</li>
</script>
<ul data-bind="template: {name: 'userinfoTemplate', foreach: userinfos}">
</ul>
<script id="userinfoTemplate" type="text/html">
<li class="userinfo">
<header>
<div class="info">
<strong><span data-bind="text: Name"></span></strong>
</div>
</header>
<div class="body">
<p data-bind="text: Age"></p>
</div>
</li>
</script>
第三步 编写JS
<script type="text/javascript">
viewModel = {
userinfos: ko.observableArray([])
};
ko.applyBindings(viewModel);
$(function () {
$("#getUserInfos").click(function () {
// 使用 Knockout 模型. 首先清空一下UserInfos.
viewModel.userinfos([]);
$.get('/api/userInfo', function (data) {
// 从API中
// 得到返回的数据,更新 Knockout 模型并且绑定到页面UI模板中
viewModel.userinfos(data);
});
});
});
</script>
viewModel = {
userinfos: ko.observableArray([])
};
ko.applyBindings(viewModel);
$(function () {
$("#getUserInfos").click(function () {
// 使用 Knockout 模型. 首先清空一下UserInfos.
viewModel.userinfos([]);
$.get('/api/userInfo', function (data) {
// 从API中
// 得到返回的数据,更新 Knockout 模型并且绑定到页面UI模板中
viewModel.userinfos(data);
});
});
});
</script>
运行点击得到结果:

作者:risk
出处:http://www.cnblogs.com/risk
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/risk
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:
web api
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库