Web Api Attribute Routing 没有映射?
Web Api Attribute Routing does not map?
我有以下 api 控制器,它有几个获取操作。这是一个 mvc 站点,它在不同的进程中设置并设置为另一个站点的子域。第三个动作应该是 return 一个 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)
{
.....
}
}
这是生成的 url:
"https://temp-search.recruiter.workstation.local:443/recruiter/temp-search/api/temps/14348508/preview/project"
我通过执行以下操作解决了这个问题:
[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 控制器,它有几个获取操作。这是一个 mvc 站点,它在不同的进程中设置并设置为另一个站点的子域。第三个动作应该是 return 一个 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)
{
.....
}
}
这是生成的 url:
"https://temp-search.recruiter.workstation.local:443/recruiter/temp-search/api/temps/14348508/preview/project"
我通过执行以下操作解决了这个问题:
[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;
}