webapi2 难道不还不支持 相同的controller么???
这极其不方便啊,mvc都支持了 为什么webapi2不支持。。
MapHttpRoute下居然还是没有namespace
好像是的.不过我写webapi的时候都是单独的路由.从来不用默认路由.
能否给个具体的思路??? 刻意去控制controller不重名么?还是怎么的?谢谢。
单独的路由确实可以自己配,包括[router]属性 可以自己想怎么定义就怎么定义 但是解决不了 controller同名的问题啊。
@Allen_Chang: 我反而比较好奇你为什么会重名...
路由都单独配的话重名换个命名空间就是了.
如果你是在同一个命名空间下重名.本身结构就有问题
@吴瑞祥: mvc下是可以支持命名空间区别的, 但是webapi下就不可以,也就是你单独配了命名空间也没作用。 http://www.cnblogs.com/smallprogram/p/5673066.html
嗯.所以我也是webapi只有一层.但是因为路由都是特制的就没啥感觉.
@吴瑞祥: 了解,3Q
webapi2.0在设计的时候,就是面向资源,而controller的名字就代码资源名,其唯一是restful风格中所必须的。从自带的HelpPage也可以看得出来,Help的列表界面是没有层级的,所有的资源都排在一个页面上。这时候,假如你有两个同名的controller,你的开发者去翻阅你的HelpPage的时候,绝对血崩。
当然,有时候设计的超前等于设计过度,我们所处的业务有时候就是需要,怎么办,首先,你要把HelpPage给废掉,那个好用利索的HelpPage绝逼是不能用了(有人说糖果更好,我想说,糖果对好多.NET特性的支持不是很好)。然后,你把你的Controller分Area放。然后再配置路由,就可以了。这样不好的地方是,每次一个Area, 必须手动配置路由。并且,也因此增加的权限管理的复杂度,毕竟以前是 Controller名字与角色对应的关联关系,现在,Controller是没法用了,你得加一个Area,而且,在Filter里面,Area还不是那么地好取。
了解 谢谢。
那就不用考虑 controller重名的问题了。