首页 新闻 会员 周边

mvc同名方法如何解决

0
悬赏园豆:10 [已解决问题] 解决于 2017-11-14 10:07

我想在mvc控制器中定义两个相同方法。一个用HttpGet属性,一个用HttpPost属性,但是为什么不可以,求大神解答。如下图

 

mvc
萌橙的主页 萌橙 | 初学一级 | 园豆:175
提问于:2017-11-14 09:04
< >
分享
最佳答案
0

 跟你科普下重载吧,

“编程中重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。”

很明显,你想方法名相同,参数列表必须不同才行,至于你是说的HttpGet属性和HttpPost属性,那只是个过滤器而已,你换成别的缓存过滤器、自定义过滤器对于这个control里面的action来说,没区别,同名方法只能加以参数区分,不然你就破坏了重载的定义,就好比,你非要说两点之间最短的不是直线一样,以人类目前的认识来看,这是不可能的(好吧我有点扯,无非就是解释下,希望你明白)

收获园豆:8
顾星河 | 大侠五级 |园豆:7173 | 2017-11-14 09:49
其他回答(3)
0

如果你想用同名的方法,你第二个方法加个没用的参数呗

猝不及防 | 园豆:2781 (老鸟四级) | 2017-11-14 09:12
0

这有什么为什么一说 —— 人家就这么设置的规则你非要破坏规则。

面向对象哪家允许这么干了,这么干了试问系统的堆还这么干活。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-11-14 09:40
0

首先.代码是代码.页面是页面.

将一个页面/请求映射到一个action.是通过路由来的.而路由是可以配置的.

你可以同一个url不同方法请求.但代码里.一个类中方法签名一样的方法只能有一个.

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-14 10:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册