【问题标题】:WEB API 2 Routing issueWEB API 2 路由问题
【发布时间】:2015-07-29 19:42:06
【问题描述】:

"message": "未找到与请求 URI 'http://localhost:64221/api/companies/lncr/Orders/00029303_070/Lines/6' 匹配的 HTTP 资源。",

"messageDetail": "在控制器 'PurchLines' 上找不到与请求匹配的操作。"

[RoutePrefix("api/companies/{compId}/Orders/{orderId}/Lines")]
public class PurchLinesController : BaseApiController
{
    public PurchLinesController(IPortalReposotry repo)
        : base(repo)
    {

    }

    [Route("")]
    public HttpResponseMessage Get(String compId, String orderId, int levelOfDetails = 1)
    {
        IQueryable<PurchLine> query;

        if (levelOfDetails == 1)
        {
            query = PortalReposotry.GetPurchasLines(compId, orderId);
        }
        else
        {
            query = PortalReposotry.GetPurchasLinesWithApprovalHist(compId, orderId);
        }

        if (query.Count() == 0)
        {
            return Request.CreateResponse(HttpStatusCode.NotFound);
        }

        var results = query.ToList()
                           .Select(v => this.ModelFactory.Create(v));


        return Request.CreateResponse(HttpStatusCode.OK, results);
    }

    [Route("{lineId:double}" , Name="line")]
    public HttpResponseMessage Get(String compId, String purchId, double lineId, int levelOfDetails = 1)
    {
        PurchLine results;
        if (levelOfDetails == 1)
        {
            results = PortalReposotry.GetPurchasLine(compId, purchId, lineId);
        }
        else
        {
            results = PortalReposotry.GetPurchasLineWithApprovalHist(compId, purchId, lineId);
        }

        if (results == null)
        {
            return Request.CreateResponse(HttpStatusCode.NotFound);
        }

        return Request.CreateResponse(HttpStatusCode.OK, ModelFactory.Create(results));
    }
}

该请求应与第二个 Get 请求匹配。
api/companies/{compId}/Orders/{orderId}/Lines/{lineId} http://localhost:64221/api/companies/lncr/Orders/00029303_070/Lines/6

lineId是double类型,我也试过 http://localhost:64221/api/companies/lncr/Orders/00029303_070/Lines/6.0/

但这也不起作用,所以我对自己做错了什么感到不知所措。

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api-routing


    【解决方案1】:

    我发现我的错误,第二个获取响应有 purchId,但我的 RoutePrefix 被定义为 orderId。容易监督。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-27
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多