出现这种情况的原因可能是在Post操作之后未正确设置重定向结果。下面给出一个示例代码,演示如何在ASP.NET Web API的Post操作中正确设置重定向结果:
[HttpPost]
public IHttpActionResult PostSomeData(SomeData data)
{
// 处理数据。。。
// 设置重定向结果
var uri = new Uri(Request.RequestUri, "/api/someresource");
return Created(uri, data);
}
在这个示例中,首先使用Created
方法创建了一个HTTP响应,该响应将返回201 Created HTTP状态码。此方法的第一个参数是重定向URI,它在此处被设置为-/api/someresource。 由于这个URI是相对于当前请求的URI,因此使用了Request.RequestUri属性。 第二个参数是要返回的任何数据。
经过正确设置后,现在在Post操作之后,使用重定向URI返回客户端(里面包含新创建的SomeData实例)。新资源的URI将是${Request.RequestUri}/someresource
。