none
validar caracter en parametro de URL con MVC2 y VS2008 RRS feed

  • Pregunta

  • Hola a todos, mi problema es el siguiente:

    desde mi aplicación hago un windows open enviando como parámetros a la URL el id,password(encriptada) y el estado del usuario.

    Ahora, cuando el password tiene los caracteres "\" o "/" se produce un error y no me permite entrar en la nueva ventana.

    Tengo entendido que MVC trabaja las URL mas limpias y separa cada parámetro mediante el caracter "/", entiendo que por eso falla.

    Habra alguna posibilidad de poder validar los caracteres "\" "/" para que pueda enviarlos como parámetros a la URL ?.

    Mi código es el siguiente:

          <script type="text/javascript" language="javascript">
    
              $(document).ready(function() {
                  var cod = '<%=Model.UsuarioID%>';
                  var clave = '<%=Model.Clave%>';
                  var indCambio = '<%=Model.IndCambioClave%>';              
                  
                  var url = '<%=TempData["URLSima"].ToString()%>';
                  window.open(url + "?cod=" + cod + "&pass=" + clave + "&ind=" + indCambio);
              });
              
        </script>


    miércoles, 15 de mayo de 2013 16:01

Todas las respuestas

  • Se puede hacer, pero te va a complicar un poco el código. Para poder aceptar y validar las "/" en el parámetro, tendrás que añadir en el global.asax una ruta "catch-all" (que tome todos los datos de la ruta) y luego trocearla por tu cuenta dentro del método de acción. Por ejemplo, al inicializar el mapa de rutas en el global.asax añadirías una ruta de este estilo:

    routes.MapRoute(
        "CapturaTodo",
        "Prefijo/{*AllValues}",
        new { Controller = "MiControlador", action = "Index" });
    

    y luego en el controlador pondrías un método de acción así:

    public string Index(string AllValues)
    {
       //Aquí AllValues trae toda la URL a partir del Prefijo
    }
    

    miércoles, 15 de mayo de 2013 19:58