通过C#生成<h1> </h1>

时间:2010-11-18 10:54:25

标签: c# asp.net tags

我在VS(C#和ASP.net)中编写此代码:

using (StreamWriter streamWriter = File.CreateText(@"Example.aspx"))
        {
                streamWriter.WriteLine( "<pre>" + TextBox2.Text + "</pre>"  );
            }

此代码打开example.aspx文件,并将TextBox2.text的值写入Example.aspx。 但有一个问题 。当我将<h1> </h1>写入Textbox2.text时,我收到错误。或者当我将<i> </i>写入textbox2.text时,我得到同样的错误! 我该怎么办? 。提前致谢 。 我的错误是:

A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$TextBox2="<h1> </h1>").

3 个答案:

答案 0 :(得分:5)

默认情况下,asp.net会阻止html代码作为文本框的输入,您必须在页面中设置此属性ValidateRequest="false"详细示例:http://yourtahir.wordpress.com/2008/03/28/aspnet-not-allow-html-in-text-boxserver-error-in-application-a-potentialy-dangerous-requestform-value-was-detected/

答案 1 :(得分:2)

问题是ASP.NET会过滤危险请求(包含<>等字符的请求)。您可以通过将ValidateRequest="false"放在@Page声明中来禁用此验证。当然,如果你这样做,你应该确保完全理解后果,因为现在你的网站对黑客开放。在这种情况下,用户输入不会被清理,如果您决定将其写回页面,则应确保对其进行正确编码。

答案 2 :(得分:0)

除了添加ValidateRequest =“false”,因为Darin建议你需要添加&lt; httpRuntime requestValidationMode =“2.0”/&gt;在&lt; system.web&gt;内的web.config中部分。