跨越倍數的意見傳遞數據,也許這個問題被反覆看過在這裏,但我沒能找到答案。使用MVC 3和EF
我的項目是關於酒店的預訂。我有一個課程預訂巫婆有一個ChoosenRooms Icollection和一個代表de用戶進行預訂的類,以及其他類似日期和其他內容的類。
的過程是這樣的:
在我的第一個觀點我得到的選擇的房間,日期等,然後我傳遞給我的第二個觀點,其中i'm去獲取用戶信息,然後我有第三個視圖,我想顯示所有收集的信息,以便用戶最終可以單擊一個按鈕來保存數據。
我的問題是,我需要在所有這些意見通過預訂對象類。在我的測試中,我發現原始類型通過很好但是當我從視圖回發到下一個控制器操作時,ChoosenRooms的iColletion會丟失。
有人可以張貼一些示例如何,發佈從一個視圖回控制器,複雜的類型,比如內的另一個類預訂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)」有數據但回傳數據會丟失。
是否有可能爲你切換到[單頁的應用程序(http://www.asp.net/single-page-application/an-introduction-to-spa/overview/landingpage)(SPA)與MVC4? –
例子根本不清楚。根本不使用第一個_reserva變量。第二,你正在使用DisplayFor,而不是EditorFor。最後交換「modelitem」和「q」,我不確定它是否生成正確的元素.Id在頁面上的HTML標記中。 而且,控制器操作的外觀如何? – Nenad