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
typrv
parametr zDictionary<string, string>
i wyślij słownik, ale w tym przypadkurv
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) {
...
}