我尝试在动作中将一些json作为字符串传递,但它仅适用于第一个参数。
以下是行动:
[HttpPost("testy")]
public string testyJson([FromBody] String json, [FromBody] String shortJson)
{
dynamic o = MyModule.replaceInJson(json, shortJson);
return "";
}
这是我传给两个参数的json:
"{\"id\":1}"
更多信息:
答案 0 :(得分:1)
根据文件
Binding formatted data from the request body
每个动作最多只能有一个参数
[FromBody]
。 ASP.NET Core MVC运行时委托了 读取格式化程序的请求流的责任。一旦 为参数读取请求流,通常不是 可以再次读取请求流以绑定其他[FromBody]
参数。
(强调我的)
因此第一个参数将从正文填充,但第二个参数将不会被读取。
我建议创建一个模型来保存要传递给动作的所有信息......
public class JsonModel {
public string json { get; set;}
public string shortJson { get; set;}
}
...并将其用于动作参数
[HttpPost("testy")]
public IActionResult testyJson([FromBody]JsonModel model) {
var json = model.json;
var shortJson = model.shortJson;
dynamic o = MyModule.replaceInJson(json, shortJson);
return Ok();
}
答案 1 :(得分:0)
答案发现:由于性能原因,它受到框架的阻碍。所以我将使用包含我的jsons的字符串列表。