当我在MVC控制器如何将Json参数绑定到ASP.NET中的Web Api参数?
[HttpPost]
public async Task<ActionResult> MyMethod(int param1, string param2)
{
//....
}
这种方法我可以送一个JSON对象{param1:1, param2:"str"}
只是正常工作和参数都解决了。但是,当我为WebApi 2执行此操作时不起作用。由于[FromBody]
只能按文件中的以下示例使用1个参数。
At most one parameter is allowed to read from the message body
// Caution: Will not work!
public HttpResponseMessage Post([FromBody] int id, [FromBody] string name) { ... }
如何从WebApi控制器获得相同的MVC控制器行为?
编辑:创建相应的类和替换参数不是一个选项,因为消息传递工具会检查这些方法以进行维护。签名应该保持不变。
您编辑提供不可能的任务 - 最多一个参数可以从正文读取为:“此规则的原因是请求正文可能存储在一个只能读取一次的非缓冲流“。 –
@VadimLevkovsky你是绝对正确的。但是,由于签名保持不变,我只是让方法同时接受GET和POST。当我们用URL中的参数发送GET时,它就起作用了。 – ozgur
无法做到这一点是无效的 – Ewan