我希望我的控制器根據相同變量名稱的數據類型來擴展端點。例如,方法A接受一個int,方法B接受一個字符串。我不想聲明新的路由,而是要求路由機制區分整數和字符串。這是我的意思的一個例子。ApiController對於int或字符串URI參數的相同路由
的 「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"
,並得到結果。相反,我看到了多重路線例外。
你在你的webapiconfig中調用'config.MapHttpAttributeRoutes();',對吧? – 2014-10-28 16:49:44
您是否嘗試刪除默認路由或將您的參數更改爲id以外的其他名稱?目前你的屬性路由與你正在定義的「正常」默認路由發生衝突。 – 2014-10-28 16:54:19
重複http://stackoverflow.com/questions/2710454/asp-net-mvc-can-i-have-multiple-names-for-the-same-action – dariogriffo 2014-10-28 17:00:38