也许这个问题在这里反复出现,但我找不到答案。
我的项目是关于酒店预订。我有一个类 Reservation 女巫有一个 ChoosenRooms 的 Icollection 和一个代表 de User 进行预订的类,以及其他东西,如日期和其他东西。
过程是这样的:
在我的第一个视图中,我得到了选择的房间、日期等,然后我将其传递给我要获取用户信息的第二个视图,然后我有第三个视图,我想在其中显示所有收集到的信息,所以用户最终可以单击一个按钮来保存数据。
我的问题是我需要在所有这些视图中传递保留对象类。在我的测试中,我看到原始类型通过就好了,但是当我从视图回发到下一个控制器操作时,ChoosenRooms 的 iColletion 丢失了。
有人可以发布一些示例,如何从视图回发到控制器,在另一个类 Reservations 中的 ChoosenRooms 等复杂类型不会在此过程中丢失?
或者也许解释为什么这个信息会丢失?
编码:
public class Reserva
{
public virtual int ID { get; set; }
[NotMapped]
public string[] q { get; set; }
[Display(Name = "Cliente")]
public virtual Utilizador utilizador { get; set; }
[Display(Name = "Quarto")]
public virtual ICollection<Quartos> ChoosenRooms{ get; set; }
[Display(Name = "Serviços Adicionais")]
public virtual ICollection<ReservasItens> itens { get; set; }
风景
@model SolarDeOura.Models.Reserva
@{
ViewBag.Title = "AddReservaUser";
var _reserva = TempData["reserva"] as Reserva;
}
<h2>AddReservaUser</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Reserva</legend>
<div class="editor-label">
@Html.LabelFor(model => model.dtEntrada)
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.dtEntrada)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.dtSaida)
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.dtSaida)
</div>
<div class="editor-label">
@Model.q.Count() Choosen Rooms
</div>
@foreach (var q in Model.ChoosenRooms)
{
<ul>
<li>
@Html.DisplayFor(modelitem => q.descricao)
</li>
</ul>
}
从这里发回是问题所在。在此视图中,“@foreach(Model.ChoosenRooms 中的 var q)”有数据,但回发数据会丢失。