(Esta es una pregunta más limitada)¿Por qué Request.QueryString ["ReturnUrl"] devuelve NULL, incluso si está presente en la URL?
En mi acción asp.net MVC, estoy buscando si el valor ReturnUrl está en la URL.
mi URL tiene el siguiente aspecto:
http://localhost:56112/user/login?ReturnUrl=/user/settings
En mi acción, estoy buscando si existe ese valor cadena de consulta, y se devuelva NULL ?? ¿Cómo puede ser esto?
El código:
if(Request.QueryString["ReturnUrl"] != null)
{
}
rastreo a través de la aplicación, se acaba sin esperar si el cuerpo de la declaración es decir, es NULL.
¿Cómo se puede explicar esto?
actualización
En el controlador que verifica si el usuario ha iniciado la sesión, tengo una ActionFilter que se parece a:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
// some stuff
string loginUrl = FormsAuthentication.LoginUrl + "/user/settings;
context.Response.Redirect(loginUrl);
}
que acaba de ejecutar una prueba rápida, y funcionó bien para mí.¿Estás usando algún controlador http personalizado o similar? –
Eche un vistazo a esto también: http://stackoverflow.com/questions/1783059/query-string-with-slashes-not-working-in-asp-net-mvc –
@jacerhea Tengo un filtro personalizado que lo hace el redireccionamiento a la página de inicio de sesión. ver mi actualización arriba – Blankman