Angularjs 为什么找不到返回404的Web API 2操作?
这是我的ApicController:Angularjs 为什么找不到返回404的Web API 2操作?,angularjs,asp.net-web-api,Angularjs,Asp.net Web Api,这是我的ApicController: [RoutePrefix("api/Campaign")] public class CampaignController : ApiController { private readonly ICampaignLogic _campaignLogic; public CampaignController(ICampaignLogic campaignLogic) { _campaignLogic = campai
[RoutePrefix("api/Campaign")]
public class CampaignController : ApiController
{
private readonly ICampaignLogic _campaignLogic;
public CampaignController(ICampaignLogic campaignLogic)
{
_campaignLogic = campaignLogic;
}
[HttpGet]
[Route("GetCampaignsByYearCompanyAndContactIds/{companyId:int}/{contactId:int}/{year:int}")]
public List<Campaign> GetCampaignsByYearCompanyAndContactIds(int companyId, int contactId, int year)
{
return _campaignLogic.GetByYearCompanyAndContactIds(year, companyId, contactId);
}
}
这就是我在Chrome中调试它时的调用:
http://localhost/MyApi/api/Campaign/GetCampaignsByYearCompanyAndContactIds?companyId=12046&contactId=13662&year=2016
在调用其他API操作时,我的本地主机的所有设置都是正确的,没有任何问题。然而,当我调用这个时,我得到了一个404NotFound错误
这里缺少什么?根据您的路由,url需要包含路由中的参数,而不是查询字符串的一部分。如果要使它们仅在查询字符串中可用,请将其从路由属性中删除 你应该用AngularJS传递什么
http://localhost/MyApi/api/Campaign/GetCampaignsByYearCompanyAndContactIds/12046/13662/2016
因此,您需要使用参数构建URL,不能将params
用于此URL
如果要在AngularJS中使用params
,请将Route
属性更改为以下内容
[Route("GetCampaignsByYearCompanyAndContactIds")]
就这样,谢谢你。作为将来的参考,如果我想在路由中包含它们,那么在Angular?@halterdev-correct中调用它们时,我是否只需要将它们串联在一起,并且顺序与您在路由中定义它们的顺序相同。
[Route("GetCampaignsByYearCompanyAndContactIds")]