原文:Getting Started with ASP.NET Web API 2

  Step 1:新建一个Empty的Web API Project。

  Step 2:添加一个Model:

    public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}

  Step 3:添加一个Empty的Web API Controller:

    public class ProductsController : ApiController
{
Product[] products = new Product[]
{
new Product { Id = , Name = "Tomato Soup", Category = "Groceries", Price = },
new Product { Id = , Name = "Yo-yo", Category = "Toys", Price = 3.75M },
new Product { Id = , Name = "Hammer", Category = "Hardware", Price = 16.99M }
}; public IEnumerable<Product> GetAllProducts()
{
return products;
} public IHttpActionResult GetProduct(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
}

  至此我们已经完成一个Web API。新建一个HTML Page调用此Web API:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Product App</title>
</head>
<body> <div>
<h2>All Products</h2>
<ul id="products" />
</div>
<div>
<h2>Search by ID</h2>
<input type="text" id="prodId" size="5" />
<input type="button" value="Search" onclick="find();" />
<p id="product" />
</div> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
<script>
var uri = 'api/products'; $(document).ready(function () {
// Send an AJAX request
$.getJSON(uri)
.done(function (data) {
// On success, 'data' contains a list of products.
$.each(data, function (key, item) {
// Add a list item for the product.
$('<li>', { text: formatItem(item) }).appendTo($('#products'));
});
});
}); function formatItem(item) {
return item.Name + ': $' + item.Price;
} function find() {
var id = $('#prodId').val();
$.getJSON(uri + '/' + id)
.done(function (data) {
$('#product').text(formatItem(data));
})
.fail(function (jqXHR, textStatus, err) {
$('#product').text('Error: ' + err);
});
}
</script>
</body>
</html>

  查看效果:

aaarticlea/png;base64,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" alt="" />

[翻译]ASP.NET Web API 2入门的更多相关文章

  1. Asp.Net Web API 2(入门)第一课

    Asp.Net Web API 2(入门)第一课   前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎 ...

  2. 水果项目第3集-asp.net web api开发入门

    app后台开发,可以用asp.net webservice技术. 也有一种重量级一点的叫WCF,也可以用来做app后台开发. 现在可以用asp.net web api来开发app后台. Asp.net ...

  3. [翻译]ASP.NET Web API 2 中的全局错误处理

    目录 已存在的选项 解决方案预览 设计原则 什么时候去用 方案详情 示例 附录: 基类详情 原文链接 Global Error Handling in ASP.NET Web API 2 由于翻译水平 ...

  4. ASP.NET Web API 2 入门

    本文参考:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web ...

  5. 01Getting Started---Getting Started with ASP.NET Web API 2入门WebApi2

    HTTP 不只是为了生成 web 页面.它也是建立公开服务和数据的 Api 的强大平台.HTTP 是简单的. 灵活的和无处不在.你能想到的几乎任何平台有 HTTP 库,因此,HTTP 服务可以达到范围 ...

  6. [翻译]ASP.NET Web API的路由

    原文:Routing in ASP.NET Web API 在我们新建一个Web API项目时,会在App_Start文件夹下的WebApiConfig.cs中定义一个默认路由: config.Rou ...

  7. ASP.NET Web API 2 入门(一)

    前言 HTTP 不是只是为了服务的 web 页.这也是建设公开服务和数据的 Api 的强大平台.HTTP 是简单的. 灵活的和无处不在.你能想到的几乎任何平台有 HTTP 库,因此,HTTP 服务可以 ...

  8. ASP.NET Web API 之一 入门篇

    一.基于RESTful标准的Web Api 原文讲解:https://www.cnblogs.com/lori/p/3555737.html 微软的web api是在vs2012上的mvc4项目绑定发 ...

  9. ASP.NET Web API 2入门

    1.全局配置 Web API 2之前是这样的配置的: protected void Application_Start() { //未实现特性路由 WebApiConfig.Register(Glob ...

随机推荐

  1. Dynamics CRM 2011 2013-(An error occurred while opening mailbox xxx@xx.com Microsoft.Crm.Tools.Email.Providers.)

    An error occurred while opening mailbox  Microsoft.Crm.Tools.Email.Providers. Whenever I check how C ...

  2. 详细讲解Hadoop源码阅读工程(以hadoop-2.6.0-src.tar.gz和hadoop-2.6.0-cdh5.4.5-src.tar.gz为代表)

    首先,说的是,本人到现在为止,已经玩过.                   对于,这样的软件,博友,可以去看我博客的相关博文.在此,不一一赘述! Eclipse *版本 Eclipse *下载 Jd ...

  3. map的基本操作函数及含义

    map的基本操作函数:      C++ Maps是一种关联式容器,包含“关键字/值”对      begin()          返回指向map头部的迭代器      clear()        ...

  4. IOS开发之tableview只选中一行

    场景:一个弹出层,包含一个Tableview,每一行为一个选择条件,且只能选择一个.选中后文体有颜色变化,后面还会有对勾.选择另一个后,前一个恢复成普通状态. 示例代码: -(void)tableVi ...

  5. 这难道是CSDN的BUG? 大家帮忙看看哪里有问题

    问题: 有位网友发私信给我,提问关于网络project专业以后这么就业,要掌握哪些技术? 我就给回复, 内容例如以下: 你好,很抱歉这么晚才给你回复.对于网络project专业,就业范围事实上挺广泛的 ...

  6. oncopy和onpaste

    在Javascript中,有对应的事件能够监听复制和粘贴,那就是oncopy和onpaste. oncopy: demo: <body oncopy="alert('不能复制');re ...

  7. Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例

    1. 模拟斗地主洗牌和发牌并对牌进行排序的原理图解: 2. 代码实现: 思路: • 创建一个HashMap集合 • 创建一个ArrayList集合 • 创建花色数组和点数数组 • 从0开始往HashM ...

  8. TextView使用的方式

    第一种改变TextView的方式 //      TextView tv=new TextView(this);  //      tv.setText("Hello,Android&quo ...

  9. [整理]:oracle spool 用法

    本文来自iDB Stock:http://www.idb-stock.net/idb/2011/06/01/153.html 1.spool的作用是什么? spool的作用可以用一句话来描述:在sql ...

  10. [置顶] 第一天初试linux

    1).unix  linix  macos android 的区别 Unix是要收费的,而linix是一种开源免费的unix ,macos 和andorid又是linux的一种,macos闭源,仅仅是 ...