Explication détaillée et alternatives de la surcharge de la méthode du contrôleur ASP.NET MVC
Question :
Le contrôleur ASP.NET MVC peut-il surcharger les méthodes ? Pourquoi ma tentative de rechargement a-t-elle échoué ? Le message d'erreur que j'ai reçu était :
"La requête actuelle pour l'action 'MyMethod' sur le type de contrôleur 'MyController' est ambiguë entre les méthodes d'action suivantes :"
Réponse :
Bien que le message d'erreur indique que la surcharge de méthode n'est pas prise en charge, vous pouvez utiliser l'attribut [ActionName]
pour obtenir un effet similaire.
Dans ASP.NET MVC, la surcharge de méthodes n'est pas autorisée dans le même contrôleur. Cependant, vous pouvez donner à la méthode un nom différent en utilisant l'attribut [ActionName]
. Cela vous permet d'utiliser différentes signatures de méthode pour les opérations avec la même méthode HTTP (telle que GET ou POST).
Pour simuler une surcharge de méthode, ajoutez l'attribut [ActionName]
à la méthode que vous souhaitez renommer. Par exemple :
<code class="language-csharp">[ActionName("MyOverloadedName")] public ActionResult MyMethod(int id) { // 重载方法的代码 }</code>
Il convient de noter que l'utilisation de [ActionName]
n'est pas une véritable méthode de surcharge. Cela change uniquement le nom de l’action acheminée vers la méthode. Vous devez donc toujours utiliser des noms d'opération différents pour les méthodes qui gèrent la même méthode HTTP.
Pour plus d'informations, veuillez vous référer à l'article de Phil Haack : https://www.php.cn/link/8ab84c57bf234ea2e3bf8330b47c2db1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!