MVC ActionLink agrega todos los parámetros (opcionales) de la url actual

El muy famosoActionLink:

 <%: Html.ActionLink("Back to List", "Index")%>

Ahora, este enlace está en mi vista Detalles. La vista de índice es una página de búsqueda. La URL de eso se ve así:

http://localhost:50152/2011-2012/Instelling/Details/76?gemeente=Dendermonde&postcode=92**&gebruikerscode=VVKSO114421&dossiernr=114421%20&organisatie=CLB

Como puede ver, bastante la cantidad de parámetros. Obviamente, quiero mantener todos estos parámetros cuando regrese a la página Índice, por lo que debo agregarlos en elActionLink.

Ahora, estoy cansado de hacerlo manualmente, está bien para 1, pero no para 6. Esto debería ser mucho más fácil.

Pregunta: ¿Cómo devuelvo Todos los parámetros de la URL actual en elActionLink como opcionalRouteValues.

He estado buscandoRequest.QueryString. Tiene que ser algo con eso. Estaba pensando en escribir algún método estático enGlobal.asax haciendo el trabajo pero aún no tuve suerte. ¿Tal vez hay una manera fácil de hacer esto que no conozco?

Editar: Esto es lo que se me ocurrió (que funciona)

Englobal.asax:

    public static RouteValueDictionary optionalParamters(NameValueCollection c) {
        RouteValueDictionary r = new RouteValueDictionary();
        foreach (string s in c.AllKeys) {
            r.Add(s, c[s]);
        }
        return r;
    }

Detalles.aspx:

    <%: Html.ActionLink("Back to List", "Index", MVC2_NASTEST.MvcApplication.optionalParamters(Request.QueryString))%>

¿Dónde mejor pongo este código? no enGlobal.asax Supongo...

Edición 2:

using System;
using System.Web.Mvc;

namespace MVC2_NASTEST.Helpers {
    public static class ActionLinkwParamsExtensions {
        public static MvcHtmlString CustomLink(this HtmlHelper helper, string linktext) {
            //here u can use helper to get View context and then routvalue dictionary
            var routevals = helper.ViewContext.RouteData.Values;
            //here u can do whatever u want with route values
            return null;
        }

    }
}


<%@ Import Namespace="MVC2_NASTEST.Helpers" %>
...
<%: Html.ActionLinkwParams("Index") %>

Respuestas a la pregunta(5)

Su respuesta a la pregunta