【问题标题】:Can't bind multiple parameters to the request's content无法将多个参数绑定到请求的内容
【发布时间】:2020-04-15 07:03:24
【问题描述】:

我有两个类,基本上我试图用两个存储过程调用两个单独的模型来在两个表中插入数据。我这样写我的控制器:

[HttpPost]
public IHttpActionResult Adddata([FromBody]IList<Details> details,[FromBody] Request request)
{
    var changerequestResponse = db.sp_AddChangerequests(request.EmpID, request.CreatedDate, request.Status).SingleOrDefault();
    GenericResponse objResponse = null;
    foreach (Details detail in detailss)
    {
        var data = JsonConvert.SerializeObject(db.sp_AddChangerequestDetails(detailss.CRID, detailss.Category, detailss.Info, detailss.Col, detailss.Reason).SingleOrDefault(), Formatting.Indented, settings);
        objResponse = JsonConvert.DeserializeObject<GenericResponse>(data);

    }
    return Ok(objResponse);

}

和我的控制器js文件是这样的:

$scope.SubmitrequestForm = function(){            
    console.log($scope.changereqcol);
    var req = {
        method: 'POST',
        url: WebApiUrl + 'Adddata',
        headers: {
            'Content-Type': 'application/json'
        },
        data: JSON.stringify($scope.changereqcol)
    }
    console.log()
    $http(req).then(function (data, status) {
        console.log(data);
    }, function (err, status) {
        console.log(err);
    });
};

当我尝试提交数据时,我遇到了错误。你能告诉我我错过了什么吗

【问题讨论】:

  • 您遇到什么错误?此外,每个操作最多可以有一个以[FromBody] 修饰的参数。因此,我建议您将模型合并到一个请求中;
  • 请求内容不能绑定多个参数。
  • 我已经尝试过了,但是出现了编译时错误。也许我错过了一些东西,因为我在这方面很新,所以如果你能给我任何例子以便更好地理解
  • 你搞定了吗?

标签: javascript c# angularjs asp.net-web-api asp.net-web-api2


【解决方案1】:

来自this 来源:

不要将 [FromBody] 应用于每个操作方法的多个参数。一旦请求流被输入格式化程序读取,就不能再被读取以绑定其他 [FromBody] 参数。

【讨论】:

  • 这是实际答案。您不能多次绑定 FromBody。使 FromBody 成为一个包含您需要的所有数据的类
【解决方案2】:

请查看键中的 jquery POST 方法:值设置您的数据

function verifyRiderAppID() {

	$.post("/url ", {
			Parms: value
		},
		function (data, status) {
			if (status === 'success') {

			} else {
				//else logic
			}
		});
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多