當試圖找到這個問題如下解決方案:如何繞過例外的ASP.NET Web API發現多個操作
MVC Web Api Route with default action not working
主要是我在整個問題上運行「多個動作被發現」。如果路由機制發現與路由匹配不止一個動作,它拋出異常500
例如,有兩個動作在ValuesController:
[HttpGet]
public IEnumerable<String> Active()
{
var result = new List<string> { "active1", "active2" };
return result;
}
public IEnumerable<string> Get()
{
return new[] { "value1", "value2" };
}
匹配缺省路由,其中:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
隨着
GET: /api/values
將得到WER錯誤多個動作e找到了。
我的問題:如何通過選擇指定的動作(選擇第一個匹配的動作也沒關係)繞過異常「發現多個動作」。
更新1:更新tugberk的評論,謝謝指出。
更新2:從邁克的評論更新,似乎這個問題是不正確的多,所以我改變的不提路由約束問路。
感謝
嗯,它應該不可能匹配** Active **動作,除非您在其上應用'HttpGet'屬性。 – tugberk 2012-07-31 12:34:14
我已經更新了問題以添加HttpGet屬性 – 2012-07-31 15:01:23