重定向到动作传递复杂模型

Redirect to action pass complex model

我想传递给 List 类型的 RedirectToAction 模型 属性

例如,我有这个简单的模型:

public class OrgToChooseFrom
    {
        public string OrgId { get; set; }
        public string FullName { get; set; }
    }

复杂模型如下:

public class SelectCounteragentViewModel
    {
        public List<OrgToChooseFrom> Counteragents { get; set; }
        public OrgToChooseFrom SelectedOrg { get; set; }
    }

当我使用 RedirectToAction 传递简单模型时,每个值都已到位

        [HttpGet]
        public IActionResult ConfirmChoice(OrgToChooseFrom vm)
        {
            return View(vm);
        }

但是当我尝试传递复杂模型 SelectCounteragentViewModel 时,“SelectedOrg”字段为空列表和 null

        [HttpGet]
        public IActionResult SelectFromCAOrganizations(SelectCounteragentViewModel vm)
        {
            return View(vm);
        }

我该怎么做?

RedirectToAction无法通过复杂的model.You可以尝试使用TempData作为 Kiran Joshi said.Here 是演示:

public IActionResult Test()
        {
           
            SelectCounteragentViewModel vm = new SelectCounteragentViewModel { Counteragents = new List<OrgToChooseFrom> { new OrgToChooseFrom { OrgId ="1", FullName = "d" } }, SelectedOrg = new OrgToChooseFrom { OrgId = "1", FullName = "d" } };
            TempData["vm"] = JsonConvert.SerializeObject(vm);
            return RedirectToAction("SelectFromCAOrganizations", "ControllerName");
        }
[HttpGet]
        public IActionResult SelectFromCAOrganizations()
        {
            SelectCounteragentViewModel vm = JsonConvert.DeserializeObject<SelectCounteragentViewModel>(TempData["vm"].ToString());
            return View(vm);
        }