public class ProductsController : ApiController
{
static List<Product> products = new List<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);
} // POST api/values
public IHttpActionResult Post([FromBody]Product value)
{
var product = products.FirstOrDefault((p) => p.Id == value.Id);
if (product == null)
{
products.Add(value);
}
return Ok(value);
} // PUT api/values/5
public IHttpActionResult Put([FromBody]Product value)
{
var product = products.FirstOrDefault((p) => p.Id == value.Id);
if (product != null)
{
product.Name = value.Name;
product.Category = value.Category;
product.Price = value.Price;
}
return Ok(value);
} // DELETE api/values/5
public IHttpActionResult Delete([FromBody]Product value)
{
var product = products.FirstOrDefault((p) => p.Id == value.Id);
if (product != null)
{
products.Remove(product);
}
return Ok("Success");
}
}
 @section scripts
{
<script type="text/javascript">
var uri = '/api/products'; $(document).ready(function () {
// Send an AJAX request
query();
}); function getRandom(n) {
return Math.floor(Math.random() * n + 1)
} function formatItem(item) {
return item.Id + " | " + item.Name + ': $' + item.Price + " [<a onclick='del(" + item.Id + ")'>删除</a>]";
} function query() {
$('#products').children("li").remove();
$.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>', { html: formatItem(item) }).appendTo($('#products'));
});
});
} function find() {
var id = $('#prodId').val();
if (!id) return;
$.getJSON(uri + '/' + id)
.done(function (data) {
$('#product').html(formatItem(data));
})
.fail(function (jqXHR, textStatus, err) {
$('#product').text('Error: ' + err);
});
} function add() {
$.ajax({
url: uri,
type: "POST",
data: { id: 4, name: 'test', category: 'c', price: 14 }
}).done(function (data) {
query();
}).fail(function (jqXHR, textStatus, err) {
alert('Error: ' + err);
});
} function update() {
var id = getRandom(4);
$.ajax({
url: uri,
type: "PUT",
data: { id: id, name: 'Hello World', category: 'ac', price: getRandom(20) }
}).done(function (data) {
query();
}).fail(function (jqXHR, textStatus, err) {
alert('Error: ' + err);
});
} function del(id) {
$.ajax({
url: uri,
type: "DELETE",
data: { id: id }
}).done(function (data) {
query();
}).fail(function (jqXHR, textStatus, err) {
alert('Error: ' + err);
});
}
</script>
}
<div>
<h1 class="error">查询</h1>
<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>
</div>
<hr />
<div>
<h1 class="error">添加</h1>
<input type="button" value="Add" onclick="add();" />
</div>
<div>
<h1 class="error">更新</h1>
<input type="button" value="Update" onclick="update();" />
</div>

效果展示:

WebApi初探之基本操作(CRUD)的更多相关文章

  1. js对WebApi请求的基本操作

    在WebAPI对外提供的,大概有4种接口,get,post,delete,put,现在,我就简单的来说一下js请求webApi的方式和大概的作用: get:在webApi中,get方法通常是用来获取数 ...

  2. [.NET WebAPI系列03] WebAPI Controller 中标准CRUD方法

    [因] WebAPI的Controller中,一般都是下面四种方法: 对应于数据操作是我们通常所说的CRUD. C对应post,R对应Get,U对应Put,D对应Delete. 直接模仿VS 2012 ...

  3. 初始WebApi 利用WebApi实现基础的CRUD

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService.它是简单,代码 ...

  4. ASP.NET MVC学习系列(一)-WebAPI初探

    由于即将要接手的新项目计划用ASP.NET MVC3来开发,所以最近一段时间一直在看相关的书或文章.因为之前在大学里也曾学习过MVC2开发,也做过几个简单的MVC2的小型测试项目,不过在后来工作以后主 ...

  5. asp.net webapi初探(一)

    本人对webapi尚没有深入研究,初次接触发现了在数据请求时的几点现象. 先切入代码 1.如果action中开头带有Get默认就是get方式,不带Get默认就是post方式 public string ...

  6. WebAPI初探

    由于即将要接手的新项目计划用ASP.NET MVC3来开发,所以最近一段时间一直在看相关的书或文章.因为之前在大学里也曾学习过MVC2开发,也做过几个简单的MVC2的小型测试项目,不过在后来工作以后主 ...

  7. ASP.NET Web API 基本操作(CRUD)

    上一篇介绍了ASP.NET Web API的基本知识和原理,这一篇我们通过一个更直观的实例,对产品进行CRUD操作(Create/Read/Update/Delete)来继续了解一下它的基本应用. 创 ...

  8. .net core WebAPI 初探及连接MySQL

    1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了.写此文的目的,即实现 .net core WebAPI ...

  9. .Net WebApi 初探

    实现服务层与api层共用,也就表明Service层就是api层. 关键类和接口 System.Web.Http.Dispatcher.DefaultHttpControllerSelector web ...

随机推荐

  1. 493. Reverse Pairs

    // see more at https://www.youtube.com/watch?v=j68OXAMlTM4 // https://leetcode.com/problems/reverse- ...

  2. C语言数组篇(三)字符空间 和 非字符空间

     一维数组和字符串         首先是字符数组(区别字符串) ] = {'a','b','c'}; //这只是单纯的字符数组,不是字符串          字符串最重要的标志就是结尾有一个'\0' ...

  3. C++基础 inline 默认参数 函数占位参数 函数重载

    1. inline内联函数 内联函数用于替换宏, 实例: 其中宏和 ++ 连用有副作用. #include "iostream" using namespace std; #def ...

  4. [Codeforces86D]Powerful array(莫队算法)

    题意:定义K[x]为元素x在区间[l,r]内出现的次数,那么它的贡献为K[x]*K[x]*x 给定一个序列,以及一些区间询问,求每个区间的贡献 算是莫队算法膜版题,不带修改的 Code #includ ...

  5. [Codeforces976E]Well played!(贪心)

    [不稳定的传送门] Solution 首先可以证明,hp翻倍的操作一定是在同一个生物上最优 Code #include <cstdio> #include <algorithm> ...

  6. 代码review的流程

    以前我们一直都是如果要进行代码review的时候,要不我们就直接用idea来进行查看,根据不同的来查看 但是我们都是看代码的不同来进行来实现的,其实我们不需要这样,我们可以使用工具Phabricato ...

  7. Hihocoder 1275 扫地机器人 计算几何

    题意: 有一个房间的形状是多边形,而且每条边都平行于坐标轴,按顺时针给出多边形的顶点坐标 还有一个正方形的扫地机器人,机器人只可以上下左右移动,不可以旋转 问机器人移动的区域能不能覆盖整个房间 分析: ...

  8. DOS程序员手册(六)

    217页 程序的主要部分后面是主程序所使用的许多小的扩充内存功能.将这些功能组合起 来这些功能便覆盖了扩充内存的操作,尽管还可能想向它们添加错误检查. 程序所包含的函数有: emmtest   检验内 ...

  9. USACO Section1.3 Mixing Milk 解题报告

    milk解题报告 —— icedream61 博客园(转载请注明出处)----------------------------------------------------------------- ...

  10. 《数据结构》C++代码 邻接表与邻接矩阵

    上一篇“BFS与DFS”写完,突然意识到这个可能偏离了“数据结构”的主题,所以回来介绍一下图的存储:邻接表和邻接矩阵. 存图有两种方式,邻接矩阵严格说就是一个bool型的二维数组,map[i][j]表 ...