web api controller class是vs2015中asp.netweb application类型的项目中添加新项时的一种模板类型,该模板类型产生一个rest风格的接口类,

为什么选择它不选择mvccontroller class呢?

因为我们不希望它涉及到view,根本不需要view;

对于高手来说其实都一样了,继承的类都是一样的,只是具体的实现是不一样的;

比如别人已经提供了完整的类似代码,选择哪种模板就不重要了。

示例代码如下:

 

using system;
using system.collections.generic;
using system.linq;
using system.threading.tasks;
using microsoft.aspnet.mvc;

// for more information on enabling web api for empty projects, visit https://go.microsoft.com/fwlink/?linkid=397860

namespace dotnethelloworld.controllers
{
    [route("api/[controller]")]
    public class valuescontroller : controller
    {
        // get: api/values
        [httpget]
        public ienumerable get()
        {
            return new string[] { "value1", "value2" };
        }

        // get api/values/5
        [httpget("{id}")]
        public string get(int id)
        {
            return "value";
        }

        // post api/values
        [httppost]
        public void post([frombody]string value)
        {
        }

        // put api/values/5
        [httpput("{id}")]
        public void put(int id, [frombody]string value)
        {
        }

        // delete api/values/5
        [httpdelete("{id}")]
        public void delete(int id)
        {
        }
    }
}

 

添加方法:

在项目名称上点击鼠标右键,添加》新建项

左侧选择服务器端,中间选择:web api controller class,名称处输入您希望使用的名称

浏览调用:

vs2015窗口活动状态下,按f5键进入调试状态,会打开一个默认窗口,地址类似:https://localhost:3753

注意:后面的端口是随机的;

rest风格的api我们通过浏览器地址栏访问能测试的只有get类型的接口请求,

我们来看一下get()方法的注释:// get: api/values

这告诉我们可以通过api/values访问这个方法,访问地址例如:https://localhost:3753/api/values

我们再来看一下get(int id)方法的注释:// get: api/values/5

这告诉我们可以通过api/values/5访问这个方法,访问地址例如:https://localhost:3753/api/values/5

后面的5就是传递给对应int id的值,类型需要匹配,不匹配的话默认是0;