[System.Web.Http.Route("{id}")]
[System.Web.Http.HttpPut]
public async Task<ComplaintVM> Put(int id,int? employeeId)
{
var obj = _resolver.GetService<Complaint>();
obj.FranchiseId = 1;
obj.Id = id;
await obj.GetDetailAsyc();
obj.EmployeeId = employeeId;
await obj.AllocateAndManageCallAsyc();
return obj.EntityToVM();
}
这是使用[System.Web.Http.RoutePrefix(“api / app / complaint”)]
的方法所以当我用PUT请求调用我的方法时,我收到以下错误“message:”请求的资源不支持http方法'PUT'。“。
但当我在方法没有int时进行相同的调用? employeeId参数。这个电话很好。
我将employeeId作为json格式的请求传递。我正在使用fiddler来测试代码
答案 0 :(得分:0)
Put(int id,int? employeeId)
的问题是变量int? employeeId
,因为它不是URL的一部分,模型绑定器无法绑定属性,因此无法使用2个参数调用该方法。
使用[FormBody]
不起作用,返回的值为null,这是因为输入是以json的形式。
使用类型Employee
的参数解决了该问题,该参数的属性为EmployeeId
,因此该值已映射到employee对象的EmployeeId
,方法签名为{ {1}},
如果没有要绑定的模型Put(int id,Employee employee)
,则可以使用类型class
的参数作为输入参数,稍后可以从JObject中提取该值。