Enviar un objeto complejo como un parámetro para publicar acciones en ASP.NET MVC3

Intento enviar un parámetro consubmit botón para publicar acción, así que hay mi muestra:

@using(Html.BeginForm(actionName: "Search", controllerName: "MyController", routeValues: new { rv = "102" })) {

   ...
  <input type="submit" value="Search" />
}

Y esta es mi acción de búsqueda:

[HttpPost]
public virtual ActionResult Search(string rv, FormCollection collection) {

 ...
}

Así que todo está bien hasta ahora,

Entonces trato de enviar un objeto complejo como unDictionary<string, string>

Así que solo puedes reemplazarstring tipo derv parámetro conDictionary<string, string> y enviar un diccionario, pero en este caso elrv valor siempre devolvió un diccionario con 0 cuenta? ¿Dónde está el problema? ¿Cómo puedo enviar un diccionario para publicar acción?

Actualizar

También probé este pero no funcionó todavía (Mean rv steel es un diccionario con 0 recuentos):

@using(Html.BeginForm(actionName: "Search", controllerName: "MyController", routeValues: new { rv = Model.MyDictionary }, method: FormMethod.Post, htmlAttributes: new { @class = "FilterForm" })) {

 ...
}

[HttpPost]
public virtual ActionResult Search(Dictionary<string, string> rv, FormCollection collection) {

 ...
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta