カスタム API コントローラ メソッドを作成しようとしています。/api/optionalgroup/getbypricelist/{id} を使用して呼び出したいのですが、うまくいきません。
これは私の WebApiConfig です
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling =
Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.Formatters.Remove(config.Formatters.XmlFormatter);
}
}
そして、これは私のApiControllerです
public class OptionalGroupController : ApiController
{
// GET api/optionalgroup
public IEnumerable<string> GetByPricelist(int id)
{
return new string[] { "value1", "value2" };
}
// GET api/optionalgroup/5
public string Get(int id)
{
return "value";
}
// POST api/optionalgroup
public void Post([FromBody]string value)
{
}
// PUT api/optionalgroup/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/optionalgroup/5
public void Delete(int id)
{
}
}
}
しかし、uri /api/optionalgroup/getbypricelist/5 を使用して呼び出そうとすると機能しませんが、GetByPricelist メソッドをデフォルトの Get() に置き換えると、uri /api/optionalgroup で機能します