У меня есть тип Filter
:Перенаправление к действию и передачи ссылочного типа
public class Filter
{
public int FilterId { get; set; }
public ICollection<int> ModuleIds { get; set; }
}
Мне нужно перенаправить к действию и передать instanse этого типа:
public ActionResult Navigate
{
var filter = new Filter()
{
FilterId = 5,
ModuleIds = new List<int>() { 6 };
}
return RedirectToAction("list", "user", filter);
}
Вот цель действия:
public ActionResult List(Filter filter)
{
var filterId = filter.FilterId; // = 5
// but filter.ModuleIds.Count = 0
}
В результате я получил пусто . Таким образом, существует проблема только с ссылочным типом.
Как передать filter
со всеми ссылочными свойствами без использования TempData
?
Также я пытался использовать, но никаких результатов
return RedirectToAction("list", "user", new RouteValueDictionary(filter);
и
return RedirectToAction"list", "user", new { filter = filter});
Вы не можете передавать ссылочные типы. Обходным решением будет сохранение значения в Session/TempData или сериализация объекта 'filter' для json, который сделает его типом значения. –