我有一个要求,我需要将ViewModel
的同一个实例传递给控制器中的多个动作。我知道您可以使用RedirectToAction
执行此操作,如下所示。 ViewModel
有一个名为ServiceTimes
的属性(列表)。其中有一个项目,但是在输入OnlineBookingStaff
操作时,此处的ServiceTimes
属性为null。这是为什么?
[HttpPost]
public async Task<IActionResult> OnlineBookingServices(OnlineBookingViewModel viewModel)
{
try
{
return RedirectToAction(nameof(OnlineBookingStaff), viewModel);
}
}
行动看起来像这样:
public async Task<IActionResult> OnlineBookingStaff(OnlineBookingViewModel viewModel)
{
try
{
return View(viewModel);
}
catch (Exception ex)
{
await ExceptionAsync("Problem displaying Staff, Please try again later.", ex, false, true);
return View();
}
}
答案 0 :(得分:1)
RedirectToAction
发送HTTP 302响应并导致客户端重定向,最终会以GET形式返回到网址,从而丢失您的模型。
您可以直接调用它:
[HttpPost]
public async Task<IActionResult> OnlineBookingServices(OnlineBookingViewModel viewModel)
{
return await OnlineBookingStaff(viewModel);
}