传递表单之间的ID列表

时间:2011-06-09 16:01:39

标签: asp.net

我有一个ASP.NET c#项目。

我必须将一个值列表(id编号,如“23,4455,21,2,765,...”)从一个表单传递给另一个表单。由于QueryString不可能,因为列表可能很长,这是最好的办法吗?

提前致谢。

感谢您的所有答案,您正在帮助很多! 我决定这样做:

在第一张表格上:

列出lRecipients = new List(); ..... 会话[“收件人”] = l收件人;

在最终表格上: List lRecipients =(List)Session [“Recipients”]; Session.Remove( “接收者”);

4 个答案:

答案 0 :(得分:2)

您可以使用Session集合。

在第一页中,使用:

List<int> listOfInts = new List<int>();
...
Session["someKey"] = listOfInts

在第二页中,检索它:

List<int> listOfInts = Session["someKey"] as List<int>;

答案 1 :(得分:1)

如果您使用asp.net webforms,则可以将其放入会话变量中以将页面之间的内容传递给页面。你必须简明扼要地说明将大量内容放入会话的潜在性能问题。

Session["ListOfStff"] = "15,25,44.etc";

答案 2 :(得分:1)

有许多方法可以传递此数据。您选择哪个将取决于您的环境。

会话状态很有用,但受系统上并发用户数和服务器上可用内存量的限制。在决定是否使用会话状态时请考虑这一点。如果确实为此操作选择了会话状态,请确保在处理完请求后删除数据。

您可以使用隐藏的输入字段,并应用runat =“server”。这将使其数据在服务器端可用,并且它将仅在请求期间持续。这种技术的优点是它可以访问服务器代码和客户端JavaScript。但是,这也意味着您的请求的大小会增加,并且可能需要更多的工作才能将数据放到您想要的位置(并退出)。

根据所涉及的数据量,您可以实现Web服务以将数据序列化到临时存储介质(例如,数据库表),并获取“请求句柄”。然后,您可以将查询字符串上的请求句柄传递给下一个表单,它可以使用“句柄”从您的介质中获取数据。

有各种不同的方法来处理这种情况,但最好的选择取决于您的环境,开发时间和成本。

答案 3 :(得分:0)

对于Asp.NET MVC,您可以使用ViewData。

ViewData [“ID”] =“”;