Ich habe einen "Utilities" -Controller erstellt, der an kein Modell gebunden ist und nur ungebundene Funktionen enthält.
Ich möchte in der Lage sein, diese wie folgt über eine URL aufzurufen:
OData/Öffentliche Dienstleistungen/Somemethod()OData v4 ungebundene Funktion mit benutzerdefiniertem Routing
Gerade jetzt muss ich es wie folgt nennen:
OData/Somemethod()
Wie erstelle ich eine benutzerdefinierte Route für "Dienstprogramme"?
Ich habe versucht:
[ODataRoutePrefix("Utilities")]
public class UtilitiesController : ODataController
Ich habe auch versucht:
[ODataRoute("Utilities/SomeMethod()"]
public string SomeMethod()
Aber diese beiden werfen einen Fehler:
„Der Pfad template 'Dienstprogramme/Somemethod()' auf der Die Aktion "SomeMethod" im Controller "Dienstprogramme" ist keine gültige OData-Pfadvorlage. Die Ressource wurde nicht für das Segment "Dienstprogramme" gefunden. "
Dies funktioniert nicht. Wenn Sie versuchen, die URL "/ odata/Utilities/SomeMethod()" aufzurufen, erhalten Sie einen 500 Internal Server Error. Wenn Sie versuchen, "/ odata/SomeMethod()" aufzurufen, wird es in den CustomControllerSelector übernommen, aber sobald es dort ist, wird es nicht zum richtigen Controller geleitet. Sie erhalten "Es wurde kein Typ gefunden, der mit dem Controller UtilitiesController übereinstimmt". Der Controller existiert. Auch das würde Sie nicht "/ odata/Utilities/SomeMethod()" lassen, was ich versuche zu tun. – goroth