我的api控制器需要使用2个参数实现简单的GET操作:ItemID和SectionID。 返回类型ItemInSection包含有关该部分中项目的数据。
同一项目可以分为多个部分。这就是需要SectionID的原因。
如果该项目已移动且不再位于相应的部分中,我需要返回一个重定向代码301,其中包含与包含该项目的某个部分对应的位置网址。
这样做的最佳方式是什么?
对于其他错误(例如404,401 ...)代码,我使用HttpResponseException。但对于301的情况,如何指定重定向url?
答案 0 :(得分:5)
解决方案只是使用HttpResponseException(HttpResponseMessage response)
构造函数(而不是构造函数采用简单的HttpStatusCode
)。
只需写下:
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Moved);
response.Headers.Location = ...;
throw new HttpResponseException(response);