none
enviar mas de un parametro con ActionLink RRS feed

  • Pregunta

  • primero que todo agradesco su alluda de ante mano mi pregunta es puntual... quisiera saver como enviar mas de un paramtro con  ActionLink es decir se como mandar un parametro de esta manera

    <%: Html.ActionLink("Home", "Index", "Home", new {id=50 },null)%> como ven solo es un parametro pero asumamos que quiero mandar 2 o mas... puedo hacerlo con jquery pero quisiera saver como se hace con el ActionLink gracias.. att:NOE

    miércoles, 16 de noviembre de 2011 17:14

Respuestas

  • Para completar lo de Santiago:

    Ten en cuenta que ActionLink intentará mapear los parámetros a Route values pero si no lo consigue saltará a querystring.

    Es decir, dado el mapeo habitual de la tabla de rutas: {controller}/{action}/{id}

    Si haces:

    <%: Html.ActionLink("Home", "Index", "Home", new {id=50, param1=valor1, param2 = valor2, param3 = valor3 },  null)%>

    Lo que obtendrás será:

    /Home/Index/50?param1=valor1&param2=valor2&param3=valor3

    El 50 se mapea en la URL (/50) porque "id" está definido en la tabla de rutas. Por su parte param1, param2 y param3 son pasados via querystring.

    Si quieres una URL "más bonita", tipo:

    /Home/Index/50/valor1/valor2/valor3

    Entonces debes añadir los routevalues en la definición de la tabla de rutas ({controller}/{action}/{id}/{param1}/{param2}/{param3}

    Un saludo! 


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 13:34
    jueves, 17 de noviembre de 2011 15:53
  • Hola.

    Veo que estás desaprovechando el parámetro que estableces a null. Es decir, estarías usando esta versión del ActionLink http://msdn.microsoft.com/en-us/library/dd493066.aspx .

    El ejemplo que buscas sería :

    <%: Html.ActionLink("Home", "Index", "Home", new {id=50, param1=valor1, param2 = valor2, param3 = valor3 },  null)%>


     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Propuesto como respuesta eduard tomàsMVP jueves, 17 de noviembre de 2011 15:50
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 13:34
    miércoles, 16 de noviembre de 2011 21:23

Todas las respuestas

  • Hola.

    Veo que estás desaprovechando el parámetro que estableces a null. Es decir, estarías usando esta versión del ActionLink http://msdn.microsoft.com/en-us/library/dd493066.aspx .

    El ejemplo que buscas sería :

    <%: Html.ActionLink("Home", "Index", "Home", new {id=50, param1=valor1, param2 = valor2, param3 = valor3 },  null)%>


     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Propuesto como respuesta eduard tomàsMVP jueves, 17 de noviembre de 2011 15:50
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 13:34
    miércoles, 16 de noviembre de 2011 21:23
  • Para completar lo de Santiago:

    Ten en cuenta que ActionLink intentará mapear los parámetros a Route values pero si no lo consigue saltará a querystring.

    Es decir, dado el mapeo habitual de la tabla de rutas: {controller}/{action}/{id}

    Si haces:

    <%: Html.ActionLink("Home", "Index", "Home", new {id=50, param1=valor1, param2 = valor2, param3 = valor3 },  null)%>

    Lo que obtendrás será:

    /Home/Index/50?param1=valor1&param2=valor2&param3=valor3

    El 50 se mapea en la URL (/50) porque "id" está definido en la tabla de rutas. Por su parte param1, param2 y param3 son pasados via querystring.

    Si quieres una URL "más bonita", tipo:

    /Home/Index/50/valor1/valor2/valor3

    Entonces debes añadir los routevalues en la definición de la tabla de rutas ({controller}/{action}/{id}/{param1}/{param2}/{param3}

    Un saludo! 


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 13:34
    jueves, 17 de noviembre de 2011 15:53