首页 新闻 搜索 专区 学院

webapi2 难道不还不支持 相同的controller么???

0
悬赏园豆:50 [已解决问题] 解决于 2017-04-06 17:13

webapi2 难道不还不支持 相同的controller么???

这极其不方便啊,mvc都支持了 为什么webapi2不支持。。

MapHttpRoute下居然还是没有namespace

 

Allen_Chang的主页 Allen_Chang | 初学一级 | 园豆:101
提问于:2017-04-05 17:38
< >
分享
最佳答案
0

好像是的.不过我写webapi的时候都是单独的路由.从来不用默认路由.

收获园豆:50
吴瑞祥 | 高人七级 |园豆:28891 | 2017-04-05 18:16

 能否给个具体的思路???  刻意去控制controller不重名么?还是怎么的?谢谢。

单独的路由确实可以自己配,包括[router]属性 可以自己想怎么定义就怎么定义 但是解决不了 controller同名的问题啊。

Allen_Chang | 园豆:101 (初学一级) | 2017-04-05 19:05

@Allen_Chang: 我反而比较好奇你为什么会重名...

路由都单独配的话重名换个命名空间就是了.

如果你是在同一个命名空间下重名.本身结构就有问题

吴瑞祥 | 园豆:28891 (高人七级) | 2017-04-05 20:01

@吴瑞祥:   mvc下是可以支持命名空间区别的, 但是webapi下就不可以,也就是你单独配了命名空间也没作用。  http://www.cnblogs.com/smallprogram/p/5673066.html

Allen_Chang | 园豆:101 (初学一级) | 2017-04-06 08:36

嗯.所以我也是webapi只有一层.但是因为路由都是特制的就没啥感觉.

吴瑞祥 | 园豆:28891 (高人七级) | 2017-04-06 09:31

@吴瑞祥: 了解,3Q

Allen_Chang | 园豆:101 (初学一级) | 2017-04-06 09:33
其他回答(1)
0

webapi2.0在设计的时候,就是面向资源,而controller的名字就代码资源名,其唯一是restful风格中所必须的。从自带的HelpPage也可以看得出来,Help的列表界面是没有层级的,所有的资源都排在一个页面上。这时候,假如你有两个同名的controller,你的开发者去翻阅你的HelpPage的时候,绝对血崩。

当然,有时候设计的超前等于设计过度,我们所处的业务有时候就是需要,怎么办,首先,你要把HelpPage给废掉,那个好用利索的HelpPage绝逼是不能用了(有人说糖果更好,我想说,糖果对好多.NET特性的支持不是很好)。然后,你把你的Controller分Area放。然后再配置路由,就可以了。这样不好的地方是,每次一个Area, 必须手动配置路由。并且,也因此增加的权限管理的复杂度,毕竟以前是 Controller名字与角色对应的关联关系,现在,Controller是没法用了,你得加一个Area,而且,在Filter里面,Area还不是那么地好取。

ensleep | 园豆:1403 (小虾三级) | 2017-04-06 17:04

 了解 谢谢。

支持(0) 反对(0) Allen_Chang | 园豆:101 (初学一级) | 2017-04-06 17:06

那就不用考虑 controller重名的问题了。

支持(0) 反对(0) Allen_Chang | 园豆:101 (初学一级) | 2017-04-06 19:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册