我有一个ASP.NET c#项目。
我必须将一个值列表(id编号,如“23,4455,21,2,765,...”)从一个表单传递给另一个表单。由于QueryString不可能,因为列表可能很长,这是最好的办法吗?
提前致谢。
感谢您的所有答案,您正在帮助很多! 我决定这样做:
在第一张表格上:
列出lRecipients = new List(); ..... 会话[“收件人”] = l收件人;
在最终表格上: List lRecipients =(List)Session [“Recipients”]; Session.Remove( “接收者”);
答案 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”] =“”;