c# - 如何在同一个 url 上使用 [FromBody] 和 [FromForm]?
问题描述
客户可以向我发送数据JSON
或application/x-www-form-urlencoded
格式。我如何处理这些请求而不分离到不同的 url?我试过两种情况。它不起作用;情况1:
[Route ( "api/[controller]" )]
[ApiController]
public class FirstController : ControllerBase
{
[HttpPost]
public string SomePostFromBody ( [FromBody] TestClass obj )
{
return obj.Prop1 + obj.Prop2;
}
[HttpPost]
public string SomePostFromForm ( [FromForm] TestClass obj )
{
return obj.Prop1 + obj.Prop2;
}
}
案例二:
[Route ( "api/[controller]" )]
[ApiController]
public class FirstController : ControllerBase
{
[HttpPost]
public string SomePost( [FromBody][FromForm] TestClass obj )
{
return obj.Prop1 + obj.Prop2;
}
}
解决方案
为什么不手动读出这些值?
例如
[HttpPost]
public string SomePost()
{
// Check if it's a Form value
if(Request.Form != null) { // do something }
else if(Request.Body != null) { // do something }
}
注意:上面的代码可能无法编译,我只是快速写在这里。
推荐阅读
- reactjs - React.js 中的 Fetch 功能不起作用
- python - 在新包中导入 python 子包
- python - 如何改进 api 的 python 配置文件
- reactjs - undefined 不是对象(评估 '_useContext.register')
- python - Python:Pandas 列中的日期是期权到期日吗?
- java - Java MSI 静默安装程序
- python - Binance API时间值是指...?
- vb.net - Vb.net更改文本框中文本的单行字体和颜色
- django - cPanel:Django Admin Portal 未加载静态/CSS 文件
- reactjs - 会话中的 Next-Auth 用户对象为其值返回 null