C# 链接需要请求参数吗?
如果成功插入项目,我将尝试在web api post方法上设置位置标头,但问题是,如果我尝试从mvc控制器调用该api操作,则会在Url上出现异常。缺少表示参数“request”的链接。有没有一种方法可以在不需要请求的情况下生成url 这是WebAPI的邮政编码-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
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控制器添加几行额外的代码来调用数据访问层。代码/功能有点重复,但怎么办