C# 如何通过请求验证
我有一个GridView,我需要更新一些插入HTML代码的数据;我需要这些数据存储编码和解码的要求 我不能以任何方式全局禁用“请求验证”,甚至不能在页面级别禁用,因此我需要一个解决方案来在控制级别禁用“请求验证” 目前,我使用的脚本应该是Html。对每个正在更新的值进行编码,但“请求验证”似乎在事件行更新之前开始工作,所以我得到了错误“Page a潜在危险的请求。Form…” 你知道怎么解决吗 谢谢C# 如何通过请求验证,c#,asp.net,validation,C#,Asp.net,Validation,我有一个GridView,我需要更新一些插入HTML代码的数据;我需要这些数据存储编码和解码的要求 我不能以任何方式全局禁用“请求验证”,甚至不能在页面级别禁用,因此我需要一个解决方案来在控制级别禁用“请求验证” 目前,我使用的脚本应该是Html。对每个正在更新的值进行编码,但“请求验证”似乎在事件行更新之前开始工作,所以我得到了错误“Page a潜在危险的请求。Form…” 你知道怎么解决吗 谢谢 protected void GridView1_RowUpdating(object send
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
foreach (DictionaryEntry entry in e.NewValues)
{
e.NewValues[entry.Key] = Server.HtmlEncode(entry.Value.ToString());
}
PS I使用Wweb控件而不是MVC使用方法注册脚本,该脚本将在服务器端提交和解码所有输入字段的值之前对这些字段的值进行编码
string script = String.Format("var inputs = $get('{0}').getElementsByTagName('input');" +
"for(var i = 0; i < inputs.length; i++) " +
"inputs[i].value = encodeURIComponent(inputs[i].value);", this.ClientID);
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "onsubmit", script);
string script=string.Format(“var inputs=$get('{0}')).getElementsByTagName('input');”+
“对于(变量i=0;i
对于简单文本框或隐藏字段控件,如果控件的ID以_u(两个下划线)开头,则跳过这些控件的请求验证。我用它来保护我的整个页面和站点,但为了一个控件而绕过它。然而,这不是一个官方的方式,所以它可能会在未来的.net版本中更改