不使用jQuery对Web API接口POST,PUT,DELETE数据
前些天,Insus.NET有演示Web API接口的操作:
《怎样操作WebAPI接口(显示数据)》http://www.cnblogs.com/insus/p/5670401.html
《ASP.NET MVC对WebAPI接口操作(添加,更新和删除)》http://www.cnblogs.com/insus/p/5673641.html
但是,有网友说,不想使用jQuery,全部以ASP.NET MVC来实现。Ok,那来看看,先来实现POST的功能,即是往Web API添加数据。
在控制器中,创建两个Action,即是视图Action,另一个是POST的Action:
HttpClient client = new HttpClient();
HttpContent httpcontent = new StringContent(size.ToJson(), System.Text.Encoding.UTF8, "application/json");
client.PostAsync("http://localhost:9001/api/size", httpcontent)
.ContinueWith((postTask) =>
{
postTask.Result.EnsureSuccessStatusCode();
});
Source Code
视图代码:
程序运行,看看是否能正常运行,数据库是否有数据插入?
下面演示更新操作PUT,在控制器中,创建Action,一个显示数据,另一个更新数据:
public ActionResult PutDemo(int id)
{
var sizes = ApiUtility.Get<Size>("http://localhost:9001/api/size/" + id);
var model = sizes.FirstOrDefault();
return View(model);
} [HttpPost]
public ActionResult PutDemo(Size size)
{
HttpClient client = new HttpClient(); HttpContent httpcontent = new StringContent(size.ToJson(), System.Text.Encoding.UTF8, "application/json"); client.PutAsync("http://localhost:9001/api/size", httpcontent)
.ContinueWith((postTask) =>
{
postTask.Result.EnsureSuccessStatusCode();
});
return RedirectToAction("PutDemo", size.Size_nbr);
}
Source Code
视图:
实时演示:
下面Insus.NET再把Delete的功能实现完,在实现删除这个功能时,出现一点点困难:
先在控制器创建操作Action:
public ActionResult DeleteDemo(int id)
{
var sizes = ApiUtility.Get<Size>("http://localhost:9001/api/size/" + id);
var model = sizes.FirstOrDefault();
return View(model);
} [HttpPost]
public ActionResult DeleteDemo(Size size)
{
HttpClient client = new HttpClient(); client.DeleteAsync("http://localhost:9001/api/size/" + size.Size_nbr)
.ContinueWith((postTask) =>
{
postTask.Result.EnsureSuccessStatusCode();
});
return RedirectToAction("ShowApiData1");
}
Source Code
看到否,在上图中的标记#2中,DeleteAsync方法,它是不接受一个复杂Complex对type。为了不需要对前些天的程序作过多的修改,因此Insus.NET只得对Web API进行修改。这也许是设计Web API时欠缺的思考。
为API接口添加多一个方法重载:
这个Web API来自《创建与使用Web API》http://www.cnblogs.com/insus/p/5019088.html
添加删除视图DeleteDemo.cshtml:
删除功能实时演示:
不使用jQuery对Web API接口POST,PUT,DELETE数据的更多相关文章
- ASP.NET Web API 接口执行时间监控
软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥.如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一. 在本文中,我将解释 ...
- Web API接口之FileReader
Web API接口之FileReader *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...
- Winform混合式开发框架访问Web API接口的处理
在我的混合式开发框架里面,集成了WebAPI的访问,这种访问方式不仅可以实现简便的数据交换,而且可以在多种平台上进行接入,如Winform程序.Web网站.移动端APP等多种接入方式,Web API的 ...
- WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
回到目录 上一讲中介绍了使用HttpClient如何去调用一个标准的Web Api接口,并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对 ...
- Web API接口设计经验总结
在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...
- Web API 接口
Web API 接口 在给网站编写 JavaScript 代码时,也有很多可用的 API.您可以使用下面的接口(也称为对象的类型)列表,开发 Web 应用程序或网站. 关于包含这些接口的 API 列表 ...
- Http下的各种操作类.WebApi系列~通过HttpClient来调用Web Api接口
1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本 ...
- 如何让你的 Asp.Net Web Api 接口,拥抱支持跨域访问。
由于 web api 项目通常是被做成了一个独立站点,来提供数据,在做web api 项目的时候,不免前端会遇到跨域访问接口的问题. 刚开始没做任何处理,用jsonp的方式调用 web api 接口, ...
- Web API接口 安全验证
在上篇随笔<Web API应用架构设计分析(1)>,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端 ...
随机推荐
- 神奇的css!竟然可以这样玩转表格
这是在对一个博客模板进行移动端适配时遇到的一个场景.html结构如下: 要解决的问题是如何在不修改任何html代码的情况下,仅仅通过css实现下面的效果: 1)改变它们的显示顺序,.MainCell显 ...
- C语言 · 删除数组0元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数 ...
- Hadoop学习笔记——搭建
一搭建环境列表 操作系统:centos6.5 64位 JDK环境:jdk1.7.0_71 hadoop版本:社区版本2.7.2,hadoop-2.7.2-src.tar.gz 主机名 ip 角色 用户 ...
- iOS-中app启动闪退的原因
这种情况应和所谓的内存不足关系不大,很少有程序会在初始化时载入大量内容导致崩溃,并且这类问题也很容易在开发阶段被发现,所以内存不足造成秒退的可能性低(内存不足退,通常是程序用了一段时间,切换了几个画面 ...
- 网站初步收工---www.dkill.net
今天10.30左右备案核审成功了,然后一天都在忙部署和一些其他的东西,中途也写了很多文档,遇到很多问题,直接琢磨了N久,暂时发了这么多教程,明天揭露阿里云的各种坑(先用winServer服务器,有时间 ...
- LINQ系列:Linq to Object聚合操作符
聚合函数在一系列的值上执行特定的运算,并返回单个值,如在给定元素的值上执行求和或计数运算. LINQ共有7种聚合操作符:Aggregate.Average.Count.LongCount.Max.Mi ...
- Android okHttp网络请求之文件上传下载
前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...
- 为 Neutron 准备物理基础设施(II) - 每天5分钟玩转 OpenStack(76)
本节将按照上一节的规划安装配置控制节点和计算节点. 控制节点 devstack-controller 步骤如下 安装 Ubuntu 14.04 此处省略 256 个字 配置网卡 编辑 /etc/net ...
- 应用程序框架实战三十六:CRUD实战演练介绍
从本篇开始,本系列将进入实战演练阶段. 前面主要介绍了一些应用程序框架的概念和基类,本来想把所有概念介绍完,再把框架内部实现都讲完了,再进入实战,这样可以让初学者基础牢靠.不过我的精力很有限,文章进度 ...
- Linux模块
一.为什么要使用模块 由于linux使用的是整体结构,不是模块化的结构,整体结构实现的操作系统可扩展性差.linux为了扩展系统,使用了模块的技术,模块能够从系统中动态装入和卸载,这样使得linux也 ...