2011-06-09 55 views
1

我有一个ASP.NET C#项目。表单之间的ID通过列表

我必须从一个表单传递一个值列表(ID编号,例如“23,4455,21,2,765,...)”,因为QueryString不可能,因为列表可能很长,这是最好的办法做到这一点

在此先感谢

感谢您的答案,你帮助了很多! 我决定这样做:?

在第一种形式:

List lRecipients = new List(); ..... Session [“Recipients”] = lRecipients;

最终形式: List lRecipients =(List)Session [“Recipients”]; Session.Remove(“Recipients”);

+0

这功课吗? – 2011-06-09 16:05:33

回答

2

您可以使用Session集合。

在第一页,使用:

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

而在第二页,检索这样的:如果你使用asp.net web表单

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

你可以把它变成一个会话变量来传递页面之间的内容。你必须简要说明将很多东西放入会议中的潜在性能问题。

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

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

ViewData [“ID”] =“”;

1

有多种方式可以传递这些数据。你选择哪一个取决于你的环境。

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

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

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

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