Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 链接需要请求参数吗?_C#_.net_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

C# 链接需要请求参数吗?

C# 链接需要请求参数吗?,c#,.net,asp.net-mvc,asp.net-web-api,C#,.net,Asp.net Mvc,Asp.net Web Api,如果成功插入项目,我将尝试在web api post方法上设置位置标头,但问题是,如果我尝试从mvc控制器调用该api操作,则会在Url上出现异常。缺少表示参数“request”的链接。有没有一种方法可以在不需要请求的情况下生成url 这是WebAPI的邮政编码- public HttpResponseMessage Post (Product product) { ... if (addedSuccessfully) { var response = n

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

这是WebAPI的邮政编码-

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);

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

如果您可以解释您的场景,就像您正在使用从web API返回的HttpResponseMessage所做的一样,那么我可以提供一个替代方案来解决它。

我想编写一次“发布”逻辑,让它可以从javascript ajax调用和mvc端使用。我认为我应该做的是向mvc控制器添加几行额外的代码来调用数据访问层。代码/功能有点重复,但怎么办