¿Cómo obtengo los valores de QueryString en RouteValueDictionary usando Html.BeginForm ()?

He encontrado queHtml.BeginForm() rellena automáticamente routeValueDictionary con RawUrl (es decir, QueryStringParamters). Sin embargo, necesito especificar un HtmlAttribute, así que necesito usar la anulación ...

public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName, FormMethod method, object htmlAttributes)

Cuando hago los valores de QueryString NO se agregan automáticamente a RouteValueDictionary. ¿Cómo puedo lograr esto?

Aquí está mi mejor intento, pero no parece estar funcionando.

    <% RouteValueDictionary routeValueDictionary = new RouteValueDictionary(ViewContext.RouteData.Values);
       foreach (string key in Request.QueryString.Keys )
       {
           routeValueDictionary[key] = Request.QueryString[key].ToString();
       }

       using (Html.BeginForm("Login", "Membership", routeValueDictionary, FormMethod.Post, new { @class = "signin-form" }))
       {%> ...

Mi acción de controlador se ve así ...

    [HttpPost]
    public ActionResult Login(Login member, string returnUrl)
    { ...

Pero el valor de "returnUrl" que forma parte de QueryString siempre es NULL a menos que use el parámetro Html.BeginForm () sin parámetros predeterminado en mi Vista.

Gracias justin

Respuestas a la pregunta(2)

Su respuesta a la pregunta