Enviar um objeto complexo como um parâmetro para postar ação no asp.net MVC3

Eu tento enviar um parâmetro comsubmit botão para postar ação para que haja a minha amostra:

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

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

E esta é a Minha ação de pesquisa:

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

 ...
}

Então tudo está bem até agora,

Então eu tento enviar um objeto complexo como umDictionary<string, string>

Então você pode simplesmente substituirstring tipo derv parâmetro comDictionary<string, string> e enviar um dicionário, mas neste caso orv value sempre retornou um dicionário com 0 count? Onde está o problema? Como posso enviar um dicionário para postar ação?

Atualizar

Eu também tento este mas não trabalhei ainda (Mean rv steel é um dicionário com 0 count):

@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) {

 ...
}

questionAnswers(1)

yourAnswerToTheQuestion