これは、私が変更したデフォルトのルーターです。
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{addParam}",
defaults: new { id = RouteParameter.Optional, addParam = RouteParameter.Optional }
);
これはコントローラーです:
public class ReviewCycleController : ApiController
{
private MrdSearchServices _mrss = new MrdSearchServices();
// GET api/reviewcycle
public IQueryable<MrdReviewCycle> GetReviewCycles()
{
return _mrss.GetAllReviewCycles();
}
// GET api/reviewcycle/Active
public MrdReviewCycle GetReviewCycle(String is_active)
{
if (!is_active.ToLower().Equals("active"))
{
string url = new Uri(Request.RequestUri, "/api/ReviewCycle/Active").ToString();
var resp = new HttpResponseMessage(HttpStatusCode.NotFound)
{
Content = new StringContent(string.Format("No Review Cycle with State of '{0}' could be found. The only acceptable value is 'Active'. Request should be made to {1}.", is_active, url)),
ReasonPhrase = "Review Cycle Not Found!"
};
throw new HttpResponseException(resp);
}
return _mrss.GetActiveReviewCycle();
}
}
しかし、次のいずれかを呼び出すと、http://localhost:2515/api/ReviewCycle/asdf
またはhttp://localhost:2515/api/ReviewCycle
期待どおりの結果が得られません。両方で得られるのは の結果ですreturn _mrss.GetActiveReviewCycle();
。
私は一体何を間違っているのですか?
ありがとうエリック