Вы используете неверный тип возврата в методе действия, поскольку RedirectToAction
требует тип возврата ActionResult
вместо List<string>
, поскольку RedirectToRouteResult
унаследовано от ActionResult
.
Обновление:
Вам необходимо сериализовать список в строку JSON, чтобы передать его плавно (с библиотекой Newtonsoft.Json
), поэтому метод целевого действия должен использовать параметр string
. Вот правильная настройка для отправки списка брендов другому методу действия:
public ActionResult ListOfBrandNames(string id)
{
var result = db.Items.Where(x => x.Category.Name.Equals(id)).Select(x => x.BrandID).ToList();
var ListOfBrands = db.Brands.Where(t => result.Contains(t.BrandID)).ToList();
return RedirectToAction("BrandsOfACategory", new { brands = JsonConvert.SerializeObject(ListOfBrands) });
}
И действие целевого контроллера должно выглядеть так:
[HttpGet]
public ActionResult BrandsOfACategory(string brands)
{
var listOfBrands = JsonConvert.DeserializeObject<List<Brand>>(brands);
List<string> BrandNames = listOfBrands.Select(f => f.Name.ToString()).ToList();
// do something and return view
}
Справка:
Как передать список в Redirecttoaction