Senden Sie ein komplexes Objekt als Parameter, um eine Aktion in ASP.NET MVC3 zu veröffentlichen

Ich versuche mit einen Parameter zu sendensubmit Knopf zum Posten der Aktion, damit es meine Probe gibt:

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

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

Und das ist meine Suchaktion:

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

 ...
}

Also bis jetzt ist alles in Ordnung,

Dann versuche ich ein komplexes Objekt wie einDictionary<string, string>

So können Sie einfach ersetzenstring Art derrv Parameter mitDictionary<string, string> und senden Sie ein Wörterbuch, aber in diesem Fall dierv value hat immer ein Wörterbuch mit 0 count zurückgegeben? Wo ist das Problem? Wie kann ich ein Wörterbuch senden, um eine Aktion zu veröffentlichen?

Aktualisieren

Ich versuche auch dieses, aber es hat noch nicht funktioniert (Mean rv steel ist ein Wörterbuch mit 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) {

 ...
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage