Url.Link需要请求参数

本文关键字:请求 参数 Link Url | 更新日期: 2023-09-27 17:58:26

如果项目插入成功,我正试图在web api post方法上设置位置标头,但问题是,如果我试图从mvc控制器调用该api操作,它会在Url上出现异常。缺少表示参数"request"的链接。有没有一种方法可以在不需要请求的情况下生成url?

这是web api的邮政编码-

public HttpResponseMessage Post (Product product)
{
    ...
    if (addedSuccessfully)
    {
        var response = new HttpResponseMessage {StatusCode = HttpStatusCode.Created};
        var uri = Url.Link("DefaultApi", new {id = product.ProductId});
        if (uri != null)
            response.Headers.Location = new Uri(uri);
        return response;
    }
    return new HttpResponseMessage {StatusCode = HttpStatusCode.Conflict};
}

以下是我如何称之为

_productController.Post(product);

Url.Link需要请求参数

理想情况下,除非您正在进行单元测试,否则不应该创建web API控制器并开始调用它们上的操作。控制器具有在内部创建时由web API系统初始化的上下文。

如果你能解释你的场景,就像你对从web API返回的HttpResponseMessage所做的那样,也许我可以提供一个替代方案来解决它