Asp.net web api Web Api属性路由未映射?
我有下面的api控制器,它有两个get操作。这是一个mvc站点,在不同的过程中设置,并设置为另一个站点的子域。第三个操作应该返回一个cv,并接受一个整数id和一个可选的cv名称字符串。不幸的是,我一直无法让它工作Asp.net web api Web Api属性路由未映射?,asp.net-web-api,Asp.net Web Api,我有下面的api控制器,它有两个get操作。这是一个mvc站点,在不同的过程中设置,并设置为另一个站点的子域。第三个操作应该返回一个cv,并接受一个整数id和一个可选的cv名称字符串。不幸的是,我一直无法让它工作 public class TempsController : BaseApiController { [GET(""), HttpGet] public async Task<HttpResponseMes
public class TempsController : BaseApiController
{
[GET(""), HttpGet]
public async Task<HttpResponseMessage> Get([FromUri] SearchCriteriaModel criteria)
{
.....
}
[Route("{candidateId:int}/preview/{keywords?}")]
[HttpGet]
public async Task<CandidatePreviewDto> Get(int candidateId, string keywords)
{
...
}
[HttpGet]
[Route("{candidateId:int}/cv/{name?}")]
public async Task<HttpResponseMessage> Get(string name, int candidateId)
{
.....
}
}
我通过执行以下操作修复了此问题:
[Route("api/temps/{candidateId:int}/preview/{keywords?}")]
[HttpGet]
public async Task<CandidatePreviewDto> Get(int candidateId,
string keywords = "")
{
CandidatePreviewDto preview = await candidateService.GetCandidatePreview(new CandidatePreviewQuery
{
CandidateId = candidateId,
Keywords = keywords
});
return preview;
}
[路由(“api/temps/{candidateId:int}/preview/{keywords?}”)]
[HttpGet]
公共异步任务Get(int candidateId,
字符串关键字=”)
{
CandidatePreviewTo preview=等待candidateService.GetCandidatePreview(新建CandidatePreviewQuery
{
CandidateId=CandidateId,
关键词=关键词
});
返回预览;
}
[Route("api/temps/{candidateId:int}/preview/{keywords?}")]
[HttpGet]
public async Task<CandidatePreviewDto> Get(int candidateId,
string keywords = "")
{
CandidatePreviewDto preview = await candidateService.GetCandidatePreview(new CandidatePreviewQuery
{
CandidateId = candidateId,
Keywords = keywords
});
return preview;
}