Asp.net web api Web Api属性路由未映射?

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

我有下面的api控制器,它有两个get操作。这是一个mvc站点,在不同的过程中设置,并设置为另一个站点的子域。第三个操作应该返回一个cv,并接受一个整数id和一个可选的cv名称字符串。不幸的是,我一直无法让它工作

    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;
        }