首页 新闻 会员 周边

ASP.NET web api

0
悬赏园豆:10 [已解决问题] 解决于 2018-09-06 10:32

我在开发API的时候,url的格式是 api/get/friends/{email}, email 是一个string类型的参数。但是当我传输Email地址的时候,程序不能找到相应的Controller, 但是当我把emai参数中标点符号“.”去除就可以找到相应的Controller,请问有没有人知道这个错误应该如何处理?

僧正的主页 僧正 | 初学一级 | 园豆:193
提问于:2018-09-06 05:30
< >
分享
最佳答案
1

web.config中,找到<system.webServer>节点下的<handlers>节点下的

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

path修改成path="*" 试试看吧。

iis也会报404错误,如果如上配置可以的话。那么就是这个问题。

收获园豆:10
ohyex | 小虾三级 |园豆:1496 | 2018-09-06 09:19

我在<system.webServer>节点下的<modules> 中的属性runAllManagedModulesForAllRequests 设置为true就可以运行了

僧正 | 园豆:193 (初学一级) | 2018-09-06 10:32
其他回答(2)
0

第一个方案:url改成 api/get/friends?email=xxxxx格式。
第2个方案“post提交。 api/get/friends email不在url显示。

s_p | 园豆:138 (初学一级) | 2018-09-06 08:30
0

ASP.NET Core 中没这个问题,可以正常路由,你用的是属性路由吗?

[Route("api/get/friends/{email}")]
dudu | 园豆:30994 (高人七级) | 2018-09-06 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册