使用属性从 GET 返回 JSON

1.在(App_Start/WebApiConfig)的 Register 中设置格式化程序和路由

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        GlobalConfiguration.Configuration.Formatters.Clear();
        GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());

        config.MapHttpAttributeRoutes();
    }
}

2.在 ApiController 中创建方法

public class HelloWorldController : ApiController
{
  [HttpGet]
  [Route("echo/{message}")]
  public IHttpActionResult Echo(string message) {
    return Ok(new{ hello: message });  
  }

  [HttpGet]
  [Route("echo/{digits:int}")]
  public IHttpActionResult Echo(int digits) {
    return Ok(new{ hello: digits });  

}

执行 GET /echo/foo

{
  "hello": "foo"
}

执行 GET /echo/1241290805

{
  "hello": 1241290805
}

因为路由框架在选择方法时采用最具体的条件(数据类型)