ASP.NET MVC HttpPost发布null模型

时间:2013-12-05 14:39:06

标签: c# asp.net asp.net-mvc asp.net-mvc-4

从网页MakeBookingFinalBooking填写帖子以确定某些信息,例如来宾人数,因此FinalBooking页面可以为您提供足够的文本框,以便为所有客人输入访客信息。

在调试模式下,MakeBooking帖子中的两个模型都会被填充。发布后,在FinalBooking中,模型为空。

    [HttpPost]
    public ActionResult MakeBooking(BookingModel model)
    {
        return RedirectToAction("FinalBooking", "Booking", new { model = model });
    }

    public ActionResult FinalBooking(BookingModel model)
    {
        return View(model);
    }

任何信息都将不胜感激。

2 个答案:

答案 0 :(得分:2)

应该有效

return RedirectToAction("FinalBooking", "Booking", model);

答案 1 :(得分:0)

您无法像RedirectToAction那样传递模型。您需要使用 TempData 会话在您的通话之间传输模型对象。

RedirectToAction方法返回对浏览器的HTTP 302响应,这会导致浏览器对指定的操作发出GET请求。

以下示例显示了如何使用TempData传输数据。

[HttpPost]
public ActionResult MakeBooking(BookingModel model)
{
    TempData["TempBookingModel"]=model;
    return RedirectToAction("FinalBooking", "Booking");
}

public ActionResult FinalBooking()
{       
    var model= TempData["TempBookingModel"] as BookingModel; 
    return View(model);
}

内部TempData正在使用Session作为存储机制。