Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net api重定向外部url_Asp.net_Redirect_Asp.net Web Api_Http Redirect - Fatal编程技术网

asp.net api重定向外部url

asp.net api重定向外部url,asp.net,redirect,asp.net-web-api,http-redirect,Asp.net,Redirect,Asp.net Web Api,Http Redirect,我正在试图找到一种从api重定向到外部url的方法。 这是我的控制器中的当前代码: [HttpGet, Route( "transcribe/{itemNum}/{salUnit}" )] public IHttpActionResult RedirectToProductPage( string itemNum, string salUnit ) { Configuration.Services.GetTraceWriter().Debug( Request, _controllernam

我正在试图找到一种从api重定向到外部url的方法。
这是我的控制器中的当前代码:

[HttpGet, Route( "transcribe/{itemNum}/{salUnit}" )]
public IHttpActionResult RedirectToProductPage( string itemNum, string salUnit ) {
  Configuration.Services.GetTraceWriter().Debug( Request, _controllername, $"RedirectToProductPage({itemNum}, '{salUnit}');" );
  GroupClaes.MSSQL.Wiggum.Databases.Distribution dis = new GroupClaes.MSSQL.Wiggum.Databases.Distribution();
  // get productId
  try {
    int productId = dis.Products.Where( x => x.ItemNum == itemNum && x.Active ).Join( dis.PackingUnits, x => salUnit, x => x.Unit, ( inner, outer ) => new {
      inner.Id
    } ).FirstOrDefault().Id;
    Uri url = new Uri($"https://test-eshop.claes-distribution.be/products?page=0&query=&productId={productId}");
    return Redirect( url );
  } catch ( Exception ex ) {
    iTrace.Error( _controllername, ex );
    return InternalServerError();
  }
}
该方法的工作url为
我希望它将我重定向到
它不会将我重定向到
所以我认为这是必须的,它重定向到另一个网站,但我不知道为什么这是haping

在我的tracelogs中,我有以下输出:
[05-07-2018-09-38-25.748-Info]System.Web.Http.Request:http://api.groupclaes.be/distribution/webshop/data/products/transcribe/1141011100/Z1;
[05-07-2018-09-38-25.763-Info]System.Web.Http.ModelBinding:HttpActionBinding;ExecuteBindingAsync;模型状态是有效的。值:itemNum=1141011100,salUnit=Z1;
[05-07-2018-09-38-25.763-调试]原始API.Controllers.Distribution.ProductsController:RedirectTopProductPage(1141011100,'Z1');;
[05-07-2018-09-38-25.795-Info]System.Web.Http.Request:http://api.groupclaes.be/products?page=0&query=&productId=6;
[05-07-2018-09-38-25.795-Info]System.Net.Http.Formatting:JsonMediaTypeFormatter;GetPerRequestFormatterInstance;获取类型为'HttpError',mediaType='application/json'的'JsonMediaTypeFormatter'类型的格式化程序;字符集=utf-8'

不完全是超级帮助,但您也可以看到重定向请求转到api并给出404错误,因为页面不存在。

在webApi中,重定向到其他网站应按预期工作。您是否有ActionFilters、OnActionExecuted override、EndRequest事件侦听器。。。这可能会改变控制器操作后的响应?我没有,在我的web api配置中,我唯一更改的是格式化程序(我删除了xml而支持json),我替换了跟踪服务并启用了cors
new EnableCorsAttribute(“*”,“*”,“GET,PUT,POST,DELETE,OPTIONS”)我的global.asax文件,除了我的应用程序_Start之外,它有3行
AreaRegistration.RegisterAlleas();GlobalConfiguration.Configure(WebApiConfig.Register);RouteConfig.RegisterRoutes(RouteTable.Routes)不包含任何其他逻辑