मुझे उसी समस्या का सामना करना पड़ा, हालांकि मैंने [System.Web.Mvc.AllowHtml]
संबंधित संपत्ति में कुछ उत्तरों में वर्णित किया।
मेरे मामले में, मेरे पास एक UnhandledExceptionFilter
वर्ग है जो एमवीसी सत्यापन होने से पहले अनुरोध वस्तु तक पहुंचता है (और इसलिए AllowHtml का कोई प्रभाव नहीं पड़ता है) और यह पहुंच एक उठाता है [HttpRequestValidationException] A potentially dangerous Request.Form value was detected from the client
।
इसका अर्थ है, अनुरोध वस्तु के कुछ गुणों तक पहुँचना वैधता से वैधता प्राप्त करता है (मेरे मामले में इसकी Params
संपत्ति)।
सत्यापन को रोकने के लिए एक समाधान MSDN पर प्रलेखित है
अनुरोध में विशिष्ट क्षेत्र के लिए अनुरोध सत्यापन को अक्षम करने के लिए (उदाहरण के लिए, इनपुट तत्व या क्वेरी स्ट्रिंग मान के लिए), अनुरोध प्राप्त करें। जब आप आइटम प्राप्त करते हैं, तो निम्न विधि में दिखाया गया है।
इसलिए, यदि आपके पास इस तरह का कोड है
var lParams = aRequestContext.HttpContext.Request.Params;
if (lParams.Count > 0)
{
...
इसे बदलो
var lUnvalidatedRequest = aRequestContext.HttpContext.Request.Unvalidated;
var lForm = lUnvalidatedRequest.Form;
if (lForm.Count > 0)
{
...
या केवल उस Form
संपत्ति का उपयोग करें जो सत्यापन को आग नहीं लगती है
var lForm = aRequestContext.HttpContext.Request.Form;
if (lForm.Count > 0)
{
...