我有一个ASPNET WebApi 2项目,在控制器中我有两个动作
public IHttpActionResult Get([FromUri] Company company)
{
//code
}
和另一个:
[HttpGet]
[Route("api/company/quantity")]
public IHttpActionResult Count([FromUri] Company company)
{
//code
}
公司类:
public class Company
{
public Company()
{
Name = "";
//Set default value to all properties
}
public string Name {get;set;}
//othger string properties
}
如果我使用此uri访问第一种方法获取: // localhost / api / company / 一切正常,{ {1}}对象以默认值实例化。
但是,如果我尝试使用此uri访问第二种方法Count: // localhost / api / company / quantity ,方法会被点击但是{{1} object为null。
怎么了?
答案 0 :(得分:1)
您需要更改第二种方法的路由属性,并将公司放入括号中。
[HttpGet]
[Route("api/{company}/quantity")]
public IHttpActionResult Count([FromUri] Company company)
{
//code
}
但是,您是否尝试通过URL传递复杂对象?你可以更好地切换到POST / PUT方法并从请求体绑定对象。
答案 1 :(得分:0)
你不能使用httpget传递类似类的复杂对象,发送方式是将动词更改为post或put并将对象发送到http请求的主体