我想在mvc控制器中定义两个相同方法。一个用HttpGet属性,一个用HttpPost属性,但是为什么不可以,求大神解答。如下图
跟你科普下重载吧,
“编程中重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。”
很明显,你想方法名相同,参数列表必须不同才行,至于你是说的HttpGet属性和HttpPost属性,那只是个过滤器而已,你换成别的缓存过滤器、自定义过滤器对于这个control里面的action来说,没区别,同名方法只能加以参数区分,不然你就破坏了重载的定义,就好比,你非要说两点之间最短的不是直线一样,以人类目前的认识来看,这是不可能的(好吧我有点扯,无非就是解释下,希望你明白)
如果你想用同名的方法,你第二个方法加个没用的参数呗
这有什么为什么一说 —— 人家就这么设置的规则你非要破坏规则。
面向对象哪家允许这么干了,这么干了试问系统的堆还这么干活。
首先.代码是代码.页面是页面.
将一个页面/请求映射到一个action.是通过路由来的.而路由是可以配置的.
你可以同一个url不同方法请求.但代码里.一个类中方法签名一样的方法只能有一个.