我希望我的控制器根据相同变量名的数据类型扩展端点。例如,方法 A 采用 int,方法 B 采用字符串。我不想声明新路由,而是希望路由机制区分整数和字符串。这是我的意思的一个例子。
“ApiControllers”设置:
public class BaseApiController: ApiController
{
[HttpGet]
[Route("{controller}/{id:int}")]
public HttpResponseMessage GetEntity(int id){}
}
public class StringBaseApiController: BaseApiController
{
[HttpGet]
[Route("{controller}/{id:string}")]
public HttpResponseMessage GetEntity(string id){}
}
“WebApionfig.cs”添加了以下路由:
config.Routes.MapHttpRoute(
"DefaultApi",
"{controller}/{id}",
new { id = RouteParameter.Optional }
);
我想打电话"http://controller/1"
并"http://controller/one"
得到结果。相反,我看到了多路线异常。