首页 新闻 会员 周边

Net 6 C#, 为啥x-www-form-urlencoded类型传参,OnActionExecuting不触发呢?

0
[已解决问题] 解决于 2022-08-02 10:43

Net 6 C#, 为啥postman 用x-www-form-urlencoded类型传参,后端 OnActionExecuting不触发呢? 谢谢!

问题补充:

我这个自定义的过滤类(CustomActionFilterAttribute : ActionFilterAttribute),里面有四个方法,OnActionExecuting、OnActionExecuted、OnResultExecuting、OnResultExecuted,当用x-www-form-urlencoded类型传参,后端 OnActionExecuting不触发,这样就导致参数获取不到,自定义的方法也不会执行。

无用的书生的主页 无用的书生 | 菜鸟二级 | 园豆:208
提问于:2022-08-01 23:59
< >
分享
最佳答案
1

控制器怎么写的?可能是你代码加了约束吧,只能from-data方式传递的数据。最好上一个完整的demo

奖励园豆:5
会长 | 专家六级 |园豆:12459 | 2022-08-02 09:11

代码没有加约束,

无用的书生 | 园豆:208 (菜鸟二级) | 2022-08-02 09:50

@无用的书生: 去掉[ApiController]特性是不是就可以了?或者加上FromForm特性?

会长 | 园豆:12459 (专家六级) | 2022-08-02 10:15

@会长: 好的,多谢,去掉了可以了。请问这是为何?谢谢!

无用的书生 | 园豆:208 (菜鸟二级) | 2022-08-02 10:33

@无用的书生: 建议查下资料,我记得也不太清楚了,印象里加上ApiController特性后,默认是只接收http请求body中的JSON数据吧,这样也比较合理。你为什么要通过表单方式传递数据呀?用JSON应该更方面一些吧。如果把ApiController注释掉,可能会有些问题,加上它后,返回错误数据时,会自动生成ProgramDetails类型,如果去掉了就不能自动生成了。

会长 | 园豆:12459 (专家六级) | 2022-08-02 10:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册