从ASP.Net Web API控制器操作重定向

时间:2014-02-13 16:40:31

标签: asp.net redirect http-headers

我的api控制器需要使用2个参数实现简单的GET操作:ItemID和SectionID。 返回类型ItemInSection包含有关该部分中项目的数据。

同一项目可以分为多个部分。这就是需要SectionID的原因。

如果该项目已移动且不再位于相应的部分中,我需要返回一个重定向代码301,其中包含与包含该项目的某个部分对应的位置网址。

这样做的最佳方式是什么?

对于其他错误(例如404,401 ...)代码,我使用HttpResponseException。但对于301的情况,如何指定重定向url?

1 个答案:

答案 0 :(得分:5)

解决方案只是使用HttpResponseException(HttpResponseMessage response)构造函数(而不是构造函数采用简单的HttpStatusCode)。

只需写下:

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Moved);
response.Headers.Location = ...;
throw new HttpResponseException(response);