【发布时间】:2017-08-09 18:40:11
【问题描述】:
我想为从 REST Api 返回的 DTO 创建一些超链接。
变量url总是为空,不知道为什么?!
为什么没有创建 url,我还缺少什么?
路由的名称是GetStatusFeedback,这是正确的,我也使用Action和Controller作为路由参数+leadId参数!
public class ValuesController : ApiController
{
[Route("")]
[HttpGet]
public IHttpActionResult Get()
{
var leadsFromDataBase = new List<Lead> { new Lead { Id = 1 }, new Lead { Id = 2 } };
var leadDtos = new List<LeadDto>();
foreach (var lead in leadsFromDataBase)
{
var leadDto = new LeadDto();
string url = Url.Link("GetStatusFeedback", new { LeadId = lead.Id, Action = "Accept", Controller = "values"});
leadDto.AcceptLink = new Link { Url = url, Verb = "Get" };
leadDtos.Add(leadDto);
}
return Ok(leadDtos);
}
[Route("leads/{id:int}/statusfeedback", Name = "GetStatusFeedback")]
[HttpPost]
public void Accept(int leadId)
{
}
【问题讨论】:
-
应该是 Controller = "Values" 而不是 "values"
-
不,没有帮助!如果那会是问题,我会打 MS 开发人员忽略 string.equals 与 ordinalingore 大小写比较器...
标签: c# asp.net-web-api asp.net-web-api-routing