Ich habe einen Filter
Typ:Redirect zum Handeln und Weitergabe Referenzart
public class Filter
{
public int FilterId { get; set; }
public ICollection<int> ModuleIds { get; set; }
}
ich Aktion umleiten müssen und instanse dieser Art passieren:
public ActionResult Navigate
{
var filter = new Filter()
{
FilterId = 5,
ModuleIds = new List<int>() { 6 };
}
return RedirectToAction("list", "user", filter);
}
Hier ist die Zielaktion:
public ActionResult List(Filter filter)
{
var filterId = filter.FilterId; // = 5
// but filter.ModuleIds.Count = 0
}
In einem Ergebnis wurde ich leer . Es gibt also nur ein Problem mit dem Referenztyp. Wie kann ich filter
mit allen Referenzeigenschaften ohne TempData
übergeben?
Auch habe ich versucht,
return RedirectToAction("list", "user", new RouteValueDictionary(filter);
und
return RedirectToAction"list", "user", new { filter = filter});
Sie können Referenztypen nicht übergeben. Eine Problemumgehung wäre das Speichern des Wertes in Session/TempData oder das Serialisieren des 'filter' -Objekts nach json, was es zu einem Werttyp machen würde. –