Usuario
¿Como redireccionar a una URL desde controlador WebApi?

Pregunta
-
Todas las respuestas
-
No. No se puede hacer.
Lo de "redireccionar" solo se aplica en el caso de que un navegador esté pidiendo una URL al servidor para presentarla en pantalla. En ese caso, el servidor devuelve un status 30x y el navegador sabe interpretar eso en el sentido de que tiene que navegar a otra pagina (devuelta en la respuesta despues del 30x).
Pero el WebApi normalmente no se usa asi. El navegador no "navega" al WebApi. En su lugar, se usa algun codigo cliente que envia peticiones al WebApi y recibe las respuestas y las procesa por su cuenta. Desde luego, podrias devolverle un 30x al programa llamante, pero sera ese programa el que tendra que analizar la respuesta y en consonancia navegar a donde sea menester. No puedes desencadenar esa navegacion directamente desde el WebApi.
- Marcado como respuesta Efrain Mejias Castillo martes, 9 de julio de 2019 12:09
- Desmarcado como respuesta Efrain Mejias Castillo martes, 9 de julio de 2019 12:09
-
-
Asi me funciono
[HttpGet] [AllowAnonymous] public IHttpActionResult TestActivate(string email, string date, string status) { Uri uri = new Uri("http://localhost:49799/"); date = date.Replace("*", " "); EngineProyect Funcion = new EngineProyect(); email = Funcion.DecodeBase64(email); DateTime FechaRegistroPrueba = Convert.ToDateTime(date); Cliente client = new Cliente() { Email = email, FechaActivacionPrueba = DateTime.UtcNow, EstatusEnvioNotificacion = true, }; return Redirect(uri); }
EFRAIN MEJIAS C VALENCIA - VENEZUELA
-
hola
>>nesecito al finalizar el metodo, que el navegador me lleve a una URL
Desde un webapi no se redirecciona
No es asp.net mvc que devuelves un view con el render de html para poder redirecionar, la webpai retorna json o xml son solo datos
para redirecionar lo realizas desde el cliente, no se si usas algun framework como ser Angular o React, sino lo haces puede usar solo javascript
window.locarion.href= 'url';
asi redirecionas desde el cliente cuando recibes la respuesta de la invocacion de la webapi
Si usas alguna otra libreria como ser AngularJs redirecionas usando el routing de esta
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
hola
>>Asi me funciono
Pero esa no es una webapi, evalua nuevamente que estas desarrollando porque creo que mezclas conceptos
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
Es un controlador WebApi dentro de una Aplicacion Asp.Net MVC
Da igual. No es una WebApi. Fíjate que devuelve un IHttpActionResult, y que hace un return Redirect(...). Con esas características no puede ser un WebApi, ni siquiera aunque originalmente cuando añadiste el controlador le dijeses que añadiese un WebApi.
Tal como lo tienes solo funcionará si el navegador lo llama directamente en una navegación. No funcionará si lo llama un código AJAX o un cliente de otro tipo, tal como llamarían a un WebApi, porque el return Redirect precisamente hace lo que yo te decía en la primera respuesta (devolver un 30x). Así que solo sirve si se hace una llamada de navegación y no si se hace una llamada WebApi.
- Propuesto como respuesta Sergio ParraModerator miércoles, 10 de julio de 2019 5:55
-
-
Ejecuto ese metodo llamandolo desde un link que se adjunta en el cuerpo de un correo
- Propuesto como respuesta Sergio ParraModerator miércoles, 10 de julio de 2019 5:55
-
hola
>>Es un controlador WebApi dentro de una Aplicacion Asp.Net MVC
esto es una webapi
Get Started with ASP.NET Web API 2 (C#)
si tu codigo se parece a lo que alli se explica entonces si es una webapi, sino simplemente es un controller normal que retorna una view
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP miércoles, 10 de julio de 2019 0:12