0

如果项目已成功插入,我正在尝试在 web api post 方法上设置位置标头,但问题是如果我尝试从 mvc 控制器调用该 api 操作,它会在 Url.Link 上给我一个异常,说参数“请求” ' 不见了。有没有一种不需要请求就可以生成 url 的方法?

这是网络 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);
4

1 回答 1

1

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

如果您可以解释您的场景,就像您使用从 Web API 返回的 HttpResponseMessage 所做的那样,那么我可能会提出一种替代方案来解决它。

于 2013-02-07T19:17:24.203 回答