J'ai un contrôleur MVC, lié à une vue 'Create'. Je voudrais avoir une méthode 'GET', afin de faire un peu de pré-traitement et afficher la vue, puis une méthode 'POST', afin de mettre à jour la base de données en conséquence. Après avoir lu quelques guides, et des réponses sur SO, je pense que quelque chose comme ce qui suit est la bonne solution.Comment rendre les méthodes GET et POST de WebAPI-MVC non ambiguës
<HttpGet>
Public Function Create() As ActionResult
'Do Stuff
Return View(New MyClass)
End Function
<HttpPost>
Public Function Create(MyObject As MyClass) As ActionResult
'Process results
End Function
Cependant, lorsque je tente d'accéder http://my.site/MyController/Create, je reçois une exception:
System.Reflection.AmbiguousMatchException: The current request for action 'Create' on controller type 'MyControllerController' is ambiguous
Comme si le moteur ne pouvait pas décider entre les deux, même si elles sont marquées publierez.
Qu'est-ce que je fais mal ici?
Il n'y a rien de mal avec le code que vous avez posté, je serais enclin à être d'accord avec la réponse d'Erik, ou il y a une autre raison pour laquelle l'attribut est pas réellement appliqué. Aussi, FWIW, il est inutile de spécifier 'HttpGet'. C'est le défaut. –
@ChrisPratt - ce n'est pas exactement la valeur par défaut. C'est plus comme un fourre-tout. Si vous ne spécifiez pas de verbe, il sera utilisé pour tous les verbes. Ainsi, vous pouvez spécifier soit obtenir ou poster, mais vous devez avoir une différenciation sur l'un d'entre eux. –