转载:http://www.cnblogs.com/babycool/p/3861277.html

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

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

  经过这一段时间的系统学习,真的觉得MVC3相比于之前的MVC2还有WebForm来说,确实有一种让人欲罢不能爽歪歪的感觉。特别是Razor语法、Linq表达式等的结合运用。

  为了将学习过程中遇到的一些值得留意的问题和知识点进行一个很好地整理,所以打算把对MVC的学习过程整理成一个文章系列,同时也希望能帮助那些初学ASP.NET MVC的童鞋们。可能文章的风格不会像其他文章那样讲的很深,主要还是通过实例来表达吧。由于自己也是初学,文章中难免有错误,也希望各位高手能够多多指教,大家共同学习。

  好了,废话不多说,进入正题。

  个人觉得在MVC中,路由规则算是比较重要的一点。记得之前曾看过dudu站长的一篇文章 HttpClient + ASP.NET Web API, WCF之外的另一个选择 ,对于用惯了“html+ajax+一般处理程序” 来开发项目的我来说,觉得这应该算是另一种更加高端的处理数据请求的方式吧,所以,今天我们就从这种“精简版的WebAPI” 开始说起。

  首先,先创建一个“ASP.NET 空Web应用程序” :

  然后添加对 “System.Web.Http” 和 “System.Web.Http.WebHost” 的引用:

  再添加对“System.Net.Http” 的引用:

  由于需要用到对Json数据的处理,所以还要添加对 “Newtonsoft.Json” 的引用。

这里需要注意一下:

如果开始不添加对“Newtonsoft.Json”的引用,在项目运行时就会报错,具体报错原因稍后再说。

  对四个类库的引用:

  然后新建一个类,用于注册默认路由映射,这里类名为 WebAPIConfig :

  添加Global.asax文件,在 Application_Start 方法中 初始化路由映射:

        protected void Application_Start(object sender, EventArgs e){//在应用程序启动时注册路由映射
            WebAPIConfig.Register(GlobalConfiguration.Configuration);}

  记得引入命名空间:

using System.Web.Http;

  注意:

上面我们提到,如果开始时不引用 “Newtonsoft.Json”,那么在运行时 注册路由映射这里就会报错:

 创建名为Controller的文件夹,然后添加一个类且类名以 Controller结尾,这里为UserController 。让这个类继承自 ApiController 基类:

  创建名为Model的文件夹用来存放实体类,添加Users类:

  在 UserController 类中,添加一个 GetUser() 方法,模拟一些数据:

//引入命名空间
using System.Web.Http;
using X_1_FirstWebAPI.Model;namespace X_1_FirstWebAPI.Controller
{public class UserController : ApiController{public List<Users> GetUser(){var userList = new List<Users> { new Users{ Id=1,UName="张三",UAge=12,UAddress="海淀区"},new Users{Id=2,UName="李四",UAge=23,UAddress="昌平区"},new Users{Id=3,UName="王五",UAge=34,UAddress="朝阳区"}};var temp = (from u in userListselect u).ToList();return temp;}}
}

  我们之前添加的路由规则为 "api/{controller}/{action}/{id}" ,所以,我们在浏览器中访问数据的url为 http://localhost:****/api/controllerName/actionName  的形式,在这里即是 api/user/getuser :

  OK,到这里,精简版的WebAPI项目就完成了,这个应该对于大部分.NET程序员来说理解起来是很简单的。

那下一篇文章我们就深入地来聊一聊如何调用WebAPI请求后台数据吧!

  下载代码

转载请注明出处。

作者:酷小孩

出处:http://www.cnblogs.com/babycool/

本文首发博客园,版权归作者跟博客园共有。

转载必须保留本段声明,并在页面显著位置给出本文链接,否则保留追究法律责任的权利。

分类: ASP.NET MVC,C#,ASP.NET Web API
好文要顶 关注我 收藏该文

酷小孩
关注 - 112
粉丝 - 259

+加关注

12
0

« 上一篇:[开发笔记]-Jqplot图表初体验
» 下一篇:Sublime Text 使用技巧

posted @ 2014-07-22 20:07 酷小孩 阅读(28419) 评论(15) 编辑 收藏

转载于:https://www.cnblogs.com/BOSET/p/7085024.html

转:WebApi(一)相关推荐

  1. 开源组件websocket-sharp中基于webapi的httpserver使用体验

    一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...

  2. ASP.NET WebAPI 11 参数验证

    在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参 ...

  3. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...

    通过前几个教程的学习,对webapi的编写基本上就可以入门了,可以做项目了,今天我们再给接口加个参数签名认证,之前的接口相当于赤果果的暴露在了网络上,只要知道接口地址.接口调用方式和传参就可以畅所欲为 ...

  4. ASP.NET WebAPi之断点续传下载(下)

    前言 上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载以及上传内容都已经全部完结,一直嚷嚷着把S ...

  5. nodejs获取ASP.Net WebAPI(IIS Windows验证)

    处理了很多天,终于使用Nodejs可以发出请求至WebAPI,能够正常处理数据了 首先加入npm包 npm install httpntlm 在app.js中加入代码 var httpntlm = r ...

  6. asp.net webapi 序列化为xml 时实体属性增加![CDATA[]]防止特殊字符

    有时webapi在序列化xml时,可能需要给某些带有html或特殊字符(如 < > & /)的字段加上<![CDATA[]]> 已防止影响xml正常数据,如果使用.as ...

  7. 通过httpmodule获取webapi返回的信息

    我写了一个webapi,想在module中获取请求的信息和返回的信息,写进log里,以方便以后查询.request信息很容易能拿到,但是返回信息得费一番周折.不多说,上代码 public class ...

  8. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)

    我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为json,xml等),但是如果Controller的自动序列化后的结果不是我们想要的该 ...

  9. asp.net core系列 38 WebAPI 返回类型与响应格式--必备

    一.返回类型 ASP.NET Core 提供以下 Web API Action方法返回类型选项,以及说明每种返回类型的最佳适用情况: (1) 固定类型 (2) IActionResult (3) Ac ...

  10. kindeditor扩展粘贴截图功能修改图片上传路径并通过webapi上传图片到图片服务器...

    2019独角兽企业重金招聘Python工程师标准>>> kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. ...

最新文章

  1. 遗传算法主程序(辅助)
  2. topcoder srm 360 div1
  3. UIScrollView用法
  4. jni头文件自动生成
  5. C# 入门经典示例.
  6. mysql apache php 容器_docker 容器的使用[php 5.6 mysql5.7]
  7. mysql系列问答题_(2)MySQL运维基础知识面试问答题
  8. springsecurity 登录失败_Spring Security 实战干货: 401和403状态
  9. diy计算机组装注意事项,自己组装电脑要注意什么?DIY老司机教你装机注意事项...
  10. 关于机器学习,这里有一份权威入门指南
  11. 《音频、图像及视频技术》学习笔记
  12. java运行库下载_Java运行库下载-jdk1.7 64位下载1.8.0.20 官方最新版-东坡下载
  13. linux 登录直接进入系统,Linux登录和推出系统入门教程
  14. mysql字典_mysql常用字典表(完整版)
  15. DAOs(去中心化自治组织)
  16. 计算机一级考试瓜果产量,全国计算机等级考试一级B考试(最新样题).doc
  17. 2022中科院自动化所人工智能暑期学校(部分内容)
  18. 程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码
  19. Msfvenonm生成后门木马
  20. 刚出道的黑客搞瘫美国输油管道!

热门文章

  1. 互联网趋势关键词:交流,为价值付费,资源整合
  2. jbuilder2006注册机
  3. 在线IDE之关键字另色显示
  4. 【正一专栏】读《怎样做社会研究》——社会研究的意义
  5. 【正一专栏】共享单车那些事儿
  6. Java实现海明距离简单计算
  7. Leetcode 392. 判断子序列 解题思路及C++实现
  8. python卸载模块的方法汇总_Python卸载模块的方法汇总
  9. vue中引入jquery
  10. RocketMQ--生产者与消费者的简单示例