在asp.net页面之间传递XML

时间:2014-06-05 20:33:50

标签: asp.net xml

我将XML作为字节数组获取,而我要做的就是在连续页面之间传递它。基本上在我收到的XML中,它包含用户可供选择的问题和答案选项。这通常用于确认用户的身份。

基本上看起来像这样:

<questions>
 <question>
   <prompt>In which city is Fresno street?</prompt>
   <type>city.of.residence</type>
   <answer>HILLSIDE</answer>
   <answer>ATLANTA</answer>
   <answer>ALMO</answer>
   <answer>None of the above</answer>
 </question>
 <question>
   <prompt>In which state is Fresno street?</prompt>
   <type>city.of.residence</type>
   <answer>HILLSIDE</answer>
   <answer>ATLANTA</answer>
   <answer>ALMO</answer>
   <answer>None of the above</answer>
 </question>
</questions>

我的一般任务是在第一页加载时,通过HTTP Post检索此XML然后用答案呈现第一个问题,在用户选择了答案后,他们点击&#34; next&#34;按钮和下一个问题将从xml中显示,供用户回答。

面临的挑战是,如何保持这种XML持久性,以便我可以在多个页面上对其进行处理?存储他们选择的答案也是一样的。当他们完成测验后,我需要在另一个HTTP Post中发回问题类型和答案,这样我就需要跟踪用户选择的答案。

我是asp.net开发的新手,从我的研究中发现了一些想法,但没有一个突然出现在我的场景中。

会话变量几乎听起来像它们可以工作,但我们的Web应用程序有一个超时期限,因此变量最终会丢失,我们有多个Web服务器。 XML中的数据可能是保密的,如果它不认为使用隐藏字段来存储值的想法是有效的,或者它是什么?那么这基本上让我不得不使用数据库吗?对我来说唯一不利的是我需要为每个页面请求执行的持续读/写事务。

是否所有人都有更好的方法,或者我是否坚持使用上述选项之一?提前感谢您的见解。

2 个答案:

答案 0 :(得分:0)

您可以将其存储在每个用户的会话中,这在页面之间是安全且持久的(尽管在访问之间的长时间内不一定持久,因为会话可能会过期或网站可能会重置。

WebForms

的ASP.Net会话简介

对于较长期但仍为临时持久性,请将会话状态存储在SQL Server using the state server

对于永久持久性,您需要以某种方式将XML写入磁盘 - 最简单的方法可能是在完全回答问题集后将其存储在SQL Server的XML字段中。

答案 1 :(得分:0)

此处的帖子描述了在页面之间传递数据的6种方法。

http://dotnetslackers.com/Community/blogs/haissam/archive/2007/11/26/ways-to-pass-data-between-webforms.aspx

有些方法需要将xml转换为字符串。