我有一个控制器类如下:
[Route("api/[controller]")]
public class ItemController : Controller
{
//GET api/item?employId=1009
[HttpGet]
public List<ItemViewModel> GetByEmployId([FromQuery]long employId) {
return new List<ItemViewModel>() {
new ItemViewModel(),
new ItemViewModel(),
new ItemViewModel()
};
}
// GET api/item?managerId=1009
[HttpGet]
public List<ItemViewModel> GetByManagerId([FromQuery]long managerId) {
return new List<ItemViewModel>();
}
}
对于第一个网址(http://localhost/api/item?employId=1),网络API可以返回结果。但对于第二个URL(http://localhost/api/item?managerId=2),web api返回错误,HTTP代码为500.有人可以帮助解决为什么会这样吗?感谢。
出于某种原因,我无法使用web api项目进行调试。
答案 0 :(得分:0)
有些过时,但是即使有人遇到相同的问题,也可以在此处找到响应。为此,您只需将查询参数添加为函数参数。使用相同的示例。
[Route("api/[controller]")]
public class ItemController : Controller
{
[HttpGet]
[Route("")]
public List<ItemViewModel> Get([FromQuery]long employId, [FromQuery] long managerId) {
if(employId != null){
return new List<ItemViewModel>() {
new ItemViewModel(),
new ItemViewModel(),
new ItemViewModel()
};
}
if(managerId != null){
return new List<ItemViewModel>();
}
return new List();
}
}