2010-08-12 71 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