APIURLを設定するために使用しているコードは次のとおりです。
var clientUrl = '@Url.RouteUrl("ApiControllerAction", new { httproute="", controller = "Client"})';
私のroute.configでは、ルートは次のようになります。
routes.MapHttpRoute(
name: "ApiControllerAction",
routeTemplate: "api/{controller}/{action}/{id}"
);
そして、私がヒットしようとしているコントローラーのアクションは次のとおりです。
[ActionName("clients")]
public IQueryable<Client> GetClients(int id)
{
return Uow.Clients.GetClients(id);
}
このAPIをヒットしようとしているjavascriptの関数がありますが、404を取得しています:
var getClients = function (id) {
return $.ajax(clientUrl + "/clients/" + id)
};
getClients(1)を呼び出すと、URLがヒットしようとしています。
localhost:12345/clients/1
これの私の予想されるURLではなく:
localhost:12345/api/client/clients/1
これがどこで間違っているのか考えていますか?私はこれを別のプロジェクトで作業していましたが、他にやるべきことがあるかどうか思い出せません。javascriptを調べると、clientUrl=''です。