Wie kann angegeben werden, dass eine Methode in einem Controller keine Aktionsmethode ist?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie kann angegeben werden, dass eine Methode in einem Controller keine Aktionsmethode ist?

Post by Guest »

Ich habe eine Situation, in der ich einen seitenspezifischen Controller verwenden möchte. In diesem Controller habe ich eine Aktionsmethode und eine Reihe von Hilfsmethoden. Im wirklichen Leben werden die Hilfsmethoden von einem BaseController geerbt, aber der Einfachheit halber gehen wir davon aus, dass ich nur eine Hilfsmethode direkt in meiner Controller-Klasse habe, etwa so:

Code: Select all

[Route("/dev/test")]
public class TestController : Controller {

public IActionResult Get() {
return UnprocessedEntityResult();
}

//Some helper method that I don't want to be considered an
//action method by the routing engine.
public IActionResult UnprocessedEntityResult() {
return StatusCode(StatusCodes.Status422UnprocessableEntity);
}
}
Ich möchte speziell attributbasiertes Routing verwenden und ich möchte, dass diese attributbasierte Route auf Klasse-Ebene angegeben wird.

Angesichts der oben codierten Situation wird eine AmbiguousActionException ausgelöst, wenn auf die Route /dev/test zugegriffen wird, und sie zeigt an, dass


AmbiguousActionException: Mehrere Aktionen stimmten überein. Die folgenden Aktionen stimmten mit Routendaten überein und alle Einschränkungen waren erfüllt:

App.Dev.TestController.Get

App.Dev.TestController.UnprocessedEntityResult < /p>


Wie kann ich der Routing-Engine mitteilen, dass UnprocessedEntityResult() keine Aktionsmethode ist? Ich gehe davon aus, dass es ein Attribut geben muss, das ich auf die Methode anwenden kann, aber ich konnte es nicht finden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post