当前位置: 首页 > news >正文

C# Web Api一个小例子

 

1) 认识Web Api(C#)

ASP.NET Web API是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备。 ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。

那么RESTful又是什么?

简单的解释,RESTful属于一种设计风格,REST中的GET,POST,PUT DELETE来进行数据的增删改查,如果开发人员的应用程序符合RESTful原则,则它的服务称为"RESTful风格应用服务"

2) 新建项目使用Web Api

只需要建立一个空项目,并勾选Web Api即可。

3) 观察项目结构

WebApiMVC结构上有着异曲同工的妙处,在MVC6中还合并了两个框架,曾经有位大牛说过“WebApi就是MVC的一部分”。我们先看下这个WebApiConfig.cs文件内的路由配置。

可以看到WebApi的路由是通过api/{controller}/{id}的方式请求的方式,不像MVC的模式有action。但我们也可以修改成MVC模式那样,但是微软不建议,我们先用这个默认的方式试一下。

4) 新建控制器

Controllers控制器新建控制器,选择包含读/写操作的Web API2控制器”确定。

 

会默认新建一个DefaultController.cs文件,里面代码如下,继承了ApiController类。可以看到要想访问某个控制器的某个”方法”,只需要根据对应的提交方法和参数提交,就可以执行对应的”方法”了。

    public class DefaultController : ApiController

    {

        // GET: api/Default

        public IEnumerable<string> Get()

        {

            return new string[] { "value1", "value2" };

        }

 

        // GET: api/Default/5

        public string Get(int id)

        {

            return "value";

        }

 

        // POST: api/Default

        public void Post([FromBody]string value)

        {

        }

 

        // PUT: api/Default/5

        public void Put(int id, [FromBody]string value)

        {

        }

 

        // DELETE: api/Default/5

        public void Delete(int id)

        {

        }

}

 

新建一个html页面,利用ajax get异步请求Default控制器,因为get请求不带参数,所以会默认找到Get()这个方法,返回字符数组。运行程序,打开html页面。

 

弹出了返回的数据。

 

修改url路径为有id在后面,请求的是带id参数的get方法

 

新建一个类,作为post请求使用

 

修改post提交的方法,接受Class1类并返回新的值

 

修改ajax提交方式为post,增加data参数,组装成Class1类的数据,提交。接收返回并弹出。

 

修改put提交的方法,接受Class1类,id并返回新的值

 

修改ajax提交方式为put,增加data参数,请求链接加上id,组装成Class1类的数据,提交。接收返回并弹出

 

修改修改delete提交的方法,当id有值时等于删除成功

 

修改ajax提交方式为deleteurl提供删除的数据的id,获取返回值弹出

 

 

还可以修改默认路由为MVC的方式,不过访问时要建立对应的action方法。

 

 

转载于:https://www.cnblogs.com/FTAH/p/9260696.html

相关文章:

  • 数塔-动态规划-ccf
  • 【Matplotlib】利用Python进行绘图
  • 单体架构风格
  • CSS outline和border区别
  • python学习之老男孩python全栈第九期_day009之文件操作总结
  • 复杂性研究相关论文
  • 我与Linux系统的藕断丝连
  • 老板让我十分钟上手nx-admin
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Flutter Android端启动白屏
  • 九、一级缓存、二级缓存
  • zabbix监控
  • centos7 go ENV 部署
  • swift leetcode-29 Divide Two Integers
  • 后端程序员必备的Linux基础知识
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Apache的80端口被占用以及访问时报错403
  • Laravel Telescope:优雅的应用调试工具
  • Mysql数据库的条件查询语句
  • OSS Web直传 (文件图片)
  • vuex 笔记整理
  • 从setTimeout-setInterval看JS线程
  • 第2章 网络文档
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 基于游标的分页接口实现
  • 简单基于spring的redis配置(单机和集群模式)
  • 漂亮刷新控件-iOS
  • 浅谈web中前端模板引擎的使用
  • 深度学习入门:10门免费线上课程推荐
  • 深度学习在携程攻略社区的应用
  • 实战|智能家居行业移动应用性能分析
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 移动端 h5开发相关内容总结(三)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • (20050108)又读《平凡的世界》
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Unity3DUnity3D在android下调试
  • .net Signalr 使用笔记
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net反编译的九款神器
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • @Autowired多个相同类型bean装配问题
  • [100天算法】-目标和(day 79)
  • [Android]使用Git将项目提交到GitHub
  • [C#] 如何调用Python脚本程序