使用会话将数据从一个视图传递到另一个视图
本文关键字:视图 一个 另一个 会话 数据 | 更新日期: 2023-09-27 18:11:26
已经更改了我的帖子描述,因为我已经读到"sessions"是正确的使用方式。问题是我发现使用会话很困难,因为我以前从未使用过它。
我试图链接我的文本框与模型和传递这些值,你进入到另一个视图上操作另一个控制器。我只想显示您在SeatController Index页面中输入的值,以便稍后可以将它们用于我的预订项目。
我已经得到了什么:
- 包含索引视图的BookingController
- 包含另一个索引视图的SeatController
BookingController:
public class BookingController : Controller
{
// GET: Booking
[HttpGet]
public ActionResult Index()
{
var vm = new BookingModel();
return View(vm);
}
[HttpPost]
public ActionResult Index(BookingModel bookingModel)
{
if (ModelState.IsValid)
{
Session["SelectedValue"] = bookingModel;
return RedirectToAction("Index", "Seat", new { model = bookingModel });
}
return View(bookingModel);
}
}
BookingModel:
public class BookingModel
{
public string DepartureRoute { get; set; }
public string ReturnRoute { get; set; }
public DateTime DepartureDate { get; set; }
public DateTime ReturnDate { get; set;}
public int adults { get; set; }
public int childrens {get; set; }
}
指数(BookingController)
@model TestApplication.Models.BookingModel
@Session["SelectedValue"]
<div class="col-sm-9">
@using (Html.BeginForm())
{
<div class="col-sm-6">
<label>Outward route</label><br />
@Html.TextBoxFor(m => Model.DepartureRoute, new { @class = "textbox" })
<br />
<label>Departure date</label><br />
@Html.TextBoxFor(m => m.DepartureDate, new { @class = "textbox" })
<br />
<label>Adults:</label><br />
@Html.TextBoxFor(m => Model.DepartureRoute, new { @class = "textbox" })
</div>
<div class="col-sm-6">
<label>Return route</label><br />
@Html.TextBoxFor(m => Model.DepartureRoute, new { @class = "textbox" })
<br />
<label>Return date</label><br />
@Html.TextBoxFor(m => m.ReturnDate, new { @class = "textbox" })
<br />
<label>Childrens:</label><br />
@Html.TextBoxFor(m => Model.DepartureRoute, new { @class = "textbox" })
<br />
<label>Information:</label><br />
<button type="submit" class="button_continue">Continue</button>
</div>
}
</div>
"SeatController"的索引页是这样的:
指数(SeatController)
<div class="col-sm-12">
<label>Departure route</label><br />
@Html.DisplayFor(model => model.DepartureRoute)
<br />
<label>Return route</label><br />
@Html.DisplayFor(m => m.ReturnRoute);
<br />
<label>Departure date</label><br />
@Html.DisplayFor(m => m.DepartureDate);
<br />
<label>Return date</label><br />
@Html.DisplayFor(m => m.ReturnDate);
<br />
<label>Number of adults</label><br />
@Html.DisplayFor(m => m.adults);
<br />
<label>Number of childrens</label><br />
@Html.DisplayFor(m => m.childrens);
</div>
希望有人能给一个解决方案或一些指导如何做到这一点。
您可以使用TempData
来解决您的问题。
ASP。. NET MVC中使用TempData字典来共享数据控制器操作。点击这里阅读更多内容....
[HttpPost]
public ActionResult Index(BookingModel bookingModel)
{
if (ModelState.IsValid)
{
TempData["BM"] = bookingModel;
return RedirectToAction("Result");
}
return View(bookingModel);
}
public ActionResult Result()
{
if (TempData["BM"] != null)
{
BookingModel bookingModel = (BookingModel) TempData["BM"];
return View(bookingModel);
}
}