繁体   English   中英

在RedirectToAction中传递ViewModel导致ViewModel属性为null

[英]Passing ViewModel in RedirectToAction causing ViewModel properties to be null

我有一个要求,我需要将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();
    }
}

RedirectToAction发送HTTP 302响应并引起客户端重定向,该重定向最终将以GET形式到达url,从而丢失您的模型。

您可以直接调用它:

[HttpPost]
public async Task<IActionResult> OnlineBookingServices(OnlineBookingViewModel viewModel)
{
    return await OnlineBookingStaff(viewModel);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM