Webform1.aspx
有grid.Grid包含编辑按钮。点击编辑按钮,用户将被重定向到webform2.aspx
页面。 Querystring id传递给Webform2.aspx
。 Webform2.aspx
显示该ID的所有数据。 Webform包含下拉列表,文本框和按钮等。
我从数据库中获取记录并分配到下拉列表,文本框和按钮等控件。为包含<
或>
的文本框分配值并尝试更新记录时。它引发了一个例外。例外是A potentially dangerous Request.Form value was detected from the client
。所以我尝试使用htmlencode方法。
以下是我的代码 在cs文件中
public partial class Webform1 : System.Web.UI.Page
{
string strUrl="";
protected void Page_Load(object sender, EventArgs e)
{
// Fetching value from database and assigning to string
Textbox1.Text= dr["URL"].ToString();
// directly use string
//strUrl= dr["URL"].ToString();
}
protected void button_Click(object sender, EventArgs e)
{
string s2 ="";
string s3 = "";
strUrl= Textbox1.Text;
if ((strUrl.Contains("<")) || (strUrl.Contains(">")))
{
s2 = Server.HtmlEncode("<");
s3 = Server.HtmlEncode(">");
strUrl= strPingUrl.Replace("<", s2);
strUrl= strPingUrl.Replace(">", s3);
}
Textbox1.Text =strUrl;
// updation code
当我尝试插入它时会抛出异常。如果我使用string,它就不会为textbox赋值。它正在工作。我能够更新记录。但我不想这样。用户可以更改文本框中的值。所以我想从文本框中获取价值。
答案 0 :(得分:-2)
要禁用页面上的请求验证,必须将Page指令的validateRequest属性设置为false:
<%@ Page validateRequest="false" %>
要禁用应用程序的请求验证,您必须为应用程序修改或创建Web.config文件,并将该部分的validateRequest属性设置为false:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
如果要对服务器上的所有应用程序禁用请求验证,可以对Machine.config文件进行此修改。
在.NET 4中,您可能需要添加到web.config:
<httpRuntime requestValidationMode="2.0" />
详细说明: