首页 > 后端开发 > C++ > ASP.NET MVC控制器方法是否可以超载,如果没有,我该如何达到类似的结果?

ASP.NET MVC控制器方法是否可以超载,如果没有,我该如何达到类似的结果?

Mary-Kate Olsen
发布: 2025-01-26 14:21:09
原创
720 人浏览过

Can ASP.NET MVC Controller Methods Be Overloaded, and If Not, How Can I Achieve a Similar Result?

ASP.NET MVC控制器方法重载详解及替代方案

问题:

ASP.NET MVC控制器能否重载方法?为什么我的重载尝试失败了?我收到的错误信息是:

“控制器类型'MyController'上的'MyMethod'操作的当前请求在以下操作方法之间不明确:”

解答:

虽然错误信息表明不支持方法重载,但可以使用[ActionName]特性达到类似的效果。

在ASP.NET MVC中,同一个控制器内不允许方法重载。但是,您可以使用[ActionName]特性为方法指定不同的名称。这允许您为具有相同HTTP方法(例如GET或POST)的操作使用不同的方法签名。

要模拟方法重载,请将[ActionName]特性添加到要重命名的的方法上。例如:

<code class="language-csharp">[ActionName("MyOverloadedName")]
public ActionResult MyMethod(int id)
{
    // 重载方法的代码
}</code>
登录后复制

需要注意的是,使用[ActionName]并非真正的重载方法。它仅仅改变了路由到该方法的操作名称。因此,对于处理相同HTTP方法的方法,您仍然需要使用不同的操作名称。

更多信息,请参考Phil Haack的文章:https://www.php.cn/link/8ab84c57bf234ea2e3bf8330b47c2db1

以上是ASP.NET MVC控制器方法是否可以超载,如果没有,我该如何达到类似的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板