Wyślij złożony obiekt jako parametr do wysłania akcji w ASP.NET MVC3

Próbuję wysłać parametr za pomocąsubmit przycisk, aby opublikować akcję, więc jest mój przykład:

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

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

A to jest moja akcja wyszukiwania:

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

 ...
}

Więc do tej pory wszystko jest w porządku,

Następnie próbuję wysłać złożony obiekt, taki jakDictionary<string, string>

Więc możesz po prostu wymienićstring&nbsp;typrv&nbsp;parametr zDictionary<string, string>&nbsp;i wyślij słownik, ale w tym przypadkurv&nbsp;wartość zawsze zwracała słownik z liczbą 0? gdzie jest problem? Jak mogę wysłać słownik, aby opublikować akcję?

Aktualizacja

I Spróbuj tego, ale jeszcze nie zadziałał (średnia rv stal to słownik z 0 liczbą):

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

 ...
}