J'ai un contrôleur web api et jusqu'ici il n'y avait qu'une action et tout fonctionnait correctement. J'ai essayé d'ajouter une deuxième action et je n'arrive pas à la rendre accessible.Avoir plus d'une action dans un contrôleur webapi
Voici la signature de la méthode et snip du corps de la méthode pour l'action de travail:
[Route("data/add")]
[HttpPost]
public HttpResponseMessage Add(Message item)
{
using(var ctx = new dbContext())
{
// add new message using EF. snip
}
}
Ma signature de la méthode et snip du corps de la méthode pour l'action que j'ai des problèmes avec est:
[Route("data/check")]
[HttpPost]
public HttpResponseMessage Check(DateTime date)
{
using (var ctx = new dbContext())
{
// check if any messages after param date
// snip
}
}
Et voici ma config itinéraire.
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Notification",
routeTemplate: "{controller}/check"
);
}
La chose drôle est mon autre action, celui qui travaille, peut être consulté via
données/ajouter
qui semble contredire le routage .
Edit: Le message que je reviens de Postman est
Aucune ressource HTTP a été trouvé qui correspond à la demande URI 'http://localhost:62243/data/check'
Quelle version d'Asp.Net utilisez-vous? – Nikolaus
v4.0.30319 @Nikolaus – andrewb
Avez-vous aussi un attribut route sur votre contrôleur? – Nikolaus