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 userList
                        select 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/p/3861277.html

时间: 2025-01-12 21:53:51

WebAPI初探的相关文章

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

由于即将要接手的新项目计划用ASP.NET MVC3来开发,所以最近一段时间一直在看相关的书或文章.因为之前在大学里也曾学习过MVC2开发,也做过几个简单的MVC2的小型测试项目,不过在后来工作以后主要还是开发WebForm的项目,所以MVC的东西也就逐渐的淡忘了. 经过这一段时间的系统学习,真的觉得MVC3相比于之前的MVC2还有WebForm来说,确实有一种让人欲罢不能爽歪歪的感觉.特别是Razor语法.Linq表达式等的结合运用. 为了将学习过程中遇到的一些值得留意的问题和知识点进行一个很

WebApi初探之路由配置

本文介绍了ASP.NET Web API路由HTTP请求控制器. 如果你熟悉ASP.NET MVC,Web API路由是和MVC路由非常相似的.主要差别是Web API使用HTTP方法而不是URI路径来选择Action的.你也可以使用MVC的路由配置风格来配置Web API路由,当然本文不是来介绍ASP.NET MVC的. 路由表 在ASP.NET Web API,控制器是一种处理HTTP请求的类.控制器的公共方法被称为动作方法或简单的动作.当Web API框架接收请求时,它将请求发送到一个动作

asp.net webapi初探(一)

本人对webapi尚没有深入研究,初次接触发现了在数据请求时的几点现象. 先切入代码 1.如果action中开头带有Get默认就是get方式,不带Get默认就是post方式 public string GetUsers0(string id) { List<UserProfile> list = UserProfileBiz.GetBatchTest() as List<UserProfile>; //返回json字符串 return JsonConvert.SerializeOb

.net core WebAPI 初探及连接MySQL

1. 前言 笔者最近跟着微软官方文档学习.net core WebAPI,但发现其对 WebAPI 连接数据库.读取数据库方面讲得不够细致明了.写此文的目的,即实现 .net core WebAPI 的 GET.POST 方法访问数据库,并输出结果. 2. 开发准备 2.1 操作系统 Windows 10 / Windows 7 2.2 .net core sdk .net core 2.2 下载地址:https://dotnet.microsoft.com/download 2.3 开发工具

ASP.NET MVC学习系列 WebAPI初探

转自http://www.cnblogs.com/babycool/p/3922738.html 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetUser() : 也可以用$.ajax({type:"get"}) 方式,正确的获得了返回数据: 二.传递一个参数的Get请求 通常我们需要传递参数只需要指定ajax方法的data属性

webapi方式

随笔 - 112  文章 - 0  评论 - 334 ASP.NET MVC学习系列(二)-WebAPI请求 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

WebAPI请求(转)

出处:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax

WebAPI请求——js调用

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用jQuery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU