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

从ASP.Net Web API控制器操作重定向,asp.net,redirect,http-headers,Asp.net,Redirect,Http Headers,我的api控制器需要使用两个参数实现一个简单的GET操作:ItemID和SectionID。 返回类型ItemInstruction包含有关节中项目的数据 同一项目可以包含在多个部分中。这就是为什么需要SectionID 如果项目已被移动且不再在相应的部分中,我需要返回重定向代码301,其位置url对应于包含该项目的部分之一 最好的方法是什么 对于其他错误(例如404401…)代码,我使用HttpResponseException。但是对于301情况,如何指定重定向url?解决方案只是使用Htt

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

同一项目可以包含在多个部分中。这就是为什么需要SectionID

如果项目已被移动且不再在相应的部分中,我需要返回重定向代码301,其位置url对应于包含该项目的部分之一

最好的方法是什么


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

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

只要写下:

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

您不能使用API检查项目是否存在吗?然后,如果它已被移动且不再在相应的部分中,是否重定向用户?我不确定如何使用HTTP响应异常方法——也许有一个参数可以使用。