ينتج هذا الخطأ عندما يقوم المستخدم بإدخال قيمة داخل Textbox بحيث تكون هذه القيمة عبارة عن وسم HTML مثل <br> وكذلك الوسم <script> . وينتج الخطأ بسبب أن ASP.NET تمنع أي محاولة العبث بحماية التطبيق ممن خلال حقن cross site scripting وغيرها باستغلال Textbox .
لحل هذه المشكلة يجب إجراء ما يلي :
· سوف نقوم بوضع قيمة False للخاصية ValidateRequest في الصفحة التوجيهية التي تحتوي على كود HTML , بذلك سوف يتم التطبيق على مستوى هذه الصفحة فقط .
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" ValidateRequest="false" %>
· الخيار الثاني هي وضع الخاصية فلذات Requset بالقيمة False في ملف الإعدادات Web.config , ولكن هنا يتم تعطيل هذه الخاصية على مستوى التطبيق ككل .
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
· إذا كنت لاتريد تعطيل الخاصية السابقة , فعليك وضع تعبير للتحقق أو استخدام ()Replace على القيم المدخلة بحيث تمنع كتابة الحروف الخاصة بوسوم HTML أو أي سكربت يتم إدخاله في Textbox.
<asp:textbox id="TextBox2" runat="server"
onblur="this.value = this.value.replace(/<\/?[^>]+>/gi, '');">
</asp:textbox>