Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不禁用Validation的情况下将HTML或其他类似标记安全地传递到文本框中?_C#_Asp.net_.net_Html - Fatal编程技术网

C# 如何在不禁用Validation的情况下将HTML或其他类似标记安全地传递到文本框中?

C# 如何在不禁用Validation的情况下将HTML或其他类似标记安全地传递到文本框中?,c#,asp.net,.net,html,C#,Asp.net,.net,Html,我有一个下拉列表,需要根据CAML查询筛选的内容。此查询必须由用户设置 允许用户输入CAML查询或其他常见标记的最佳方法是什么 例如: <OrderBy><FieldRef Name='SomeColumn' Ascending='True' /></OrderBy> 如果我使用文本框,则需要禁用验证,否则我会丢失查询内容,因为.NET会将类似HTML的标记从该文本框中剥离出来,以针对XSS使用protext 我不想经历构建查询配置器的过程,但我也明白禁

我有一个下拉列表,需要根据CAML查询筛选的内容。此查询必须由用户设置

允许用户输入CAML查询或其他常见标记的最佳方法是什么

例如:

<OrderBy><FieldRef Name='SomeColumn' Ascending='True' /></OrderBy>

如果我使用文本框,则需要禁用验证,否则我会丢失查询内容,因为.NET会将类似HTML的标记从该文本框中剥离出来,以针对XSS使用protext

我不想经历构建查询配置器的过程,但我也明白禁用验证是一种糟糕的做法。这里是否有一个中间立场,或者只是一个更好的方式

禁用验证并使用System.Web.HttpUtility.HtmlEncode是有效的解决方案吗

提前感谢。

在上传之前,使用JavaScript方法更改文本,然后在web服务器上使用将其返回到原始状态


至于何时这样做,我会处理该事件,并告诉它将文本框内容复制到一个隐藏字段中,该字段将被上传(但不应提交文本框)。

您可以使用web表单选择性地禁用验证(我相信是页面级的)。您可以使用MVC以非常精细的方式(即逐字段)禁用它。