要创建一个可以匹配任何路由的控制器,可以使用ASP.NET Web API的默认路由配置。以下是一个示例代码:
创建一个新的Web API项目。
打开WebApiConfig.cs
文件,该文件通常位于App_Start
文件夹中。
在Register
方法中添加以下代码:
public static void Register(HttpConfiguration config)
{
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
这将启用属性路由和默认的api/{controller}/{id}
路由。
在控制器中,可以使用[Route]
属性来定义自定义路由。例如:
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
// GET api/values
[HttpGet]
[Route("")]
public IHttpActionResult Get()
{
return Ok(new string[] { "value1", "value2" });
}
// GET api/values/{id}
[HttpGet]
[Route("{id}")]
public IHttpActionResult Get(int id)
{
return Ok("value" + id);
}
}
在上面的示例中,ValuesController
控制器将匹配api/values
和api/values/{id}
路由。
这样,您就可以创建一个可以匹配任何路由的控制器。