【问题标题】:Url.Link requires request parameter?Url.Link 需要请求参数?
【发布时间】:2013-02-08 03:17:24
【问题描述】:

如果项目已成功插入,我正在尝试在 web api post 方法上设置位置标头,但问题是如果我尝试从 mvc 控制器调用该 api 操作,它会在 Url.Link 上给我一个异常说缺少参数“请求”。有没有一种不需要请求就可以生成 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);

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-web-api


    【解决方案1】:

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

    如果您可以解释您的场景,就像您对从 Web API 返回的 HttpResponseMessage 所做的那样,我是否可以提供一种替代方案来解决它。

    【讨论】:

    • 我想写一次“发布”逻辑,让它在 javascript ajax 调用和 mvc 端都可用。我认为我应该做的是在 mvc 控制器中添加几行额外的行来调用数据访问层。代码/功能的一些重复,但该怎么做
    猜你喜欢
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2018-07-05
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多