Ich habe eine WebAPI erstellt und versucht, mit ActionName zu den richtigen Methoden zu routen. Es funktioniert mit einer meiner Methoden, die ich aufrufen möchte, aber die andere bekommt einen 404 Fehler.WebAPI ActionName-Routing-Halbfunktion
Meine WebAPI Config-Datei:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Meine WebAPI Controller-Methoden werden als solche formatiert:
Das erste ist die Arbeit ein:
[ActionName("postdb")]
public IEnumerable<string[]> postDB(string id)
{ ...
Das zweite nicht:
[ActionName("getquery")]
public IEnumerable<string[]> getQuery(string tables)
{ ...
Ich rufe beide von ihnen die gleiche Art und Weise aus Winkel (Temp eine Zeichenfolge, die als Argument übergeben wird):
$http.post('api/Test/postdb/' + temp).then(function (response) { ...
und
$http.get('api/Test/getquery/' + temp).then(function (response) { ...
ich Namen beiden Aktionen versucht habe, zu ändern Der erste funktioniert unabhängig vom Namen, der zweite funktioniert nicht, egal wie der Name lautet. Ich habe auch versucht, sie neu zu ordnen, zwischen GET und POST zu wechseln und Argumente zu ändern.
Irgendwelche Vorschläge?
Danke für den Rat. Ich werde daran arbeiten, es zu ändern! – user6846524