我需要一些帮助。我正在尝试制作一个用于在线创建调查的asp.Net,c#应用程序。主要目的是动态地将问题一个接一个地添加到另一个之下,然后保存它们并使其可用于解决它们。您可以选择四种问题类型之一,插入参数,然后动态生成由标签,单选按钮,组合,文本框等组成的HTML代码。 用于在表单上生成一个问题的方法示例。
public string RetOptionalQuestion(string seq_numm, string question, string answersOpt)
{
StringBuilder _output = new StringBuilder();_output.Append(@"<table><tr"><th>" + seq_numm + "." + question + "</th></tr>"); _output.Append(@"<tr><td><table>"); string[] words = answersOpt.Split(';'); int m = 0; foreach (string word in words) { if (word != "") { _output.Append(@" <tr><td> <label> " + word + "</label> </td> <td> <input id='optional" + question + Convert.ToString(m) + "'type='radio' name='rbOpt" + question + "' </td> "); m++; } } _output.Append("</table></td></tr></table>"); return _output.ToString(); }
每次单击“添加问题”时,问题将在div中显示在彼此下方,该页面位于页面底部的ContentPlaceHolder中。
现在,我想要做的是,当你点击一个按钮时,它会在新的.aspx页面上传输这个div的全部html(完整的问题),因此可以提出问题解决。
我正在尝试使用jQuery,获取div的完整html,并将其保存在cookie中,并使用此帮助http://jquery-howto.blogspot.com/2010/09/jquery-cookies-getsetdelete-plugin.html,但没有成功。
客户端错误 - &gt;从客户端
检测到潜在危险的Request.Cookies值你有什么建议,提示,例子,解决方案......从哪里开始...我会很高兴
先谢谢,马丁
答案 0 :(得分:3)
发生此错误是因为您在cookie中存储了HTML。鉴于这看起来像是潜在的XSS攻击,会发出此警告。
建议您不要在页面之间加载HTML。相反,您的页面之间的有效负载应该是状态。 “接收”页面应该能够检查cookie中的状态,并重建该问题列表。考虑将该表放在ASP.NET用户控件中,并在这两个页面上重用该控件。这样,您就不必一直拖着HTML了。
答案 1 :(得分:0)
而不是使用cookie在请求之间移动html。您可以在DB中使用会话变量或某些字段。将整个html保存到源页面上的某个hiddenField,在服务器端,您可以将该html设置为会话变量。
在下一页加载中,您可以从会话变量中读取该html,然后清除该变量。但请记住,如果您想将html发布到服务器,则必须在源页面的页面标记中设置ValidateRequest =“false”。