2010-08-12 73 views
1

我對ASP.NET MVC很新穎,試圖找出解決方法。ASP.NET MVC在表單之間傳遞數據

目前我返回一個ViewModel,它具有IEnumeable Events作爲其唯一屬性。此ViewModel強制類型爲UserControl,以表格形式展示IEnumable事件。 Event Model的一個屬性是XElement,它包含從DB加載的一些XML。

現在我已經添加了一個鏈接到表格數據的末尾,以便能夠在單獨的頁面中查看XML。我如何將這些數據傳遞到另一個頁面進行查看?

回答

0

基本上有將數據從一個頁面到另一個使用ASP.NET MVC(或任何其他語言/框架下面的HTTP協議)的方法有兩種:

  • 會話:使用一個會話來存儲你需要的數據,並在下一頁加載備份。
  • 將需要的數據發回服務器。這樣,服務器可以保存它並將其顯示在下一頁上。發佈的數據通常來自inputtextarea元素。如果您使用input type="hidden",則可以給它一個表示數據的值。這樣,你可以來回郵寄,直到你到達你想要的地方。
1

我會使用某種類型的ID爲事件對象發回請求回到服務器,並讓接收端發回與該ID相關的XML。

,如果你通過你的IEnumerable事件對象循環,你可以這樣做:

<%= Html.ActionLink("GetXml", "Events", new { id = currentEvent.Id }) %>; 

現在在你EventsController一個Action(假設你有一個),像這樣:

public ActionResult GetXml(int id) 

和檢索XML傳回查看

0

況且什麼是艾雲諮詢,您也可以考慮TempData

如果您使用Get-後重定向/轉發理念,爲您的應用程序,你可以這樣做:

  1. GET - 初始請求時,服務器與視圖和模型數據響應。用戶選擇一個導致...
  2. POST - 用戶從#1中選擇一個項目,觸發一個帖子。該特定項目可從倉庫提取,放置在TempData的,然後...
  3. REDIRECT /前鋒 - 重定向收集了TenpData的信息,並使用它作爲其型號爲新的視圖。

這裏有一個例子http://www.eworldui.net/blog/post/2008/05/08/ASPNET-MVC-Using-Post2c-Redirect2c-Get-Pattern.aspx

+0

值得一提的是,雖然使用TempData的會議asp.net標準。 – UpTheCreek 2011-01-05 13:59:29