2016-08-25 2 views
-1

Ich verwende Rich EditorEin potenziell gefährlicher Request.Form-Wert wurde von dem Client in asp mvc erkannt

Es zeigt mir diesen Fehler

Return Null t.FullText = HttpContext.Request["Editor1"];

Pic

anzeigen :

<div class="name"> 
    <label id="lbl-full-text">FullText : </label> 
    @* @Html.TextAreaFor(model => model.FullText)*@ 
    <div name="FullText" style="margin-right: 109px; margin-top: -34px;"> 
     @Html.Raw(ViewBag.Editor) 
    </div> 
</div> 

Kontrolle ler:

[HttpPost, ValidateInput(false)] 
public ActionResult CreateNews(Tbl_News t, HttpPostedFileBase pic, int Category = 0) 
{ 
    string content = Request.Unvalidated["Editor1"]; 
    . 
    . 
    . 
    t.FullText = HttpContext.Request["Editor1"]; 

} 

Metadata:

[AllowHtml] 
public string FullText { get; set; } 

Wie kann ich dieses Problem lösen?

+3

Mögliches Duplikat von [A potentiell gefährlicher Request.Form Wert vom Client erkannt wurde] (http://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from -the-Client) – Jonesopolis

+0

Mögliches Duplikat [zulassen Benutzer zur Eingabe von HTML in ASP.NET MVC - ValidateInput oder AllowHtml] (http://stackoverflow.com/questions/3621272/allow-user-to-input-html-in- asp-net-mvc-validadeinput-or-allowhtml) –

+0

Nein. Ich mache diesen Schritt, aber es funktioniert nicht – Kianoush

Antwort

0

Es gibt ein paar Möglichkeiten, dies zu umgehen. Nicht alle sind meiner Meinung nach der beste Ansatz.

Hier ist wahrscheinlich die schlimmste

Shotgun Ansatz

<httpRuntime requestValidationMode="2.0"/> 

Etwas besser, dass Sie es auf einer bestimmten Seite deaktivieren

<configuration> 
     <system.web> 
      <pages validateRequest="false" /> 
     </system.web> 
</configuration> 

Hier können Sie ihn ausschalten für einen bestimmten Abschnitt Ihrer Website

<configuration> 
... 
<location path="MyFolder/.aspx"> 
<system.web> 
<pages validateRequest="false" /> 
<httpRuntime requestValidationMode="2.0" /> 
</system.web> 
</location> 
... 
</configuration> 

Ein weiterer Ansatz, wenn Sie Mvc verwenden, ist das Validate Eingabeattribut auf Ihre Aktion hinzuzufügen:

[ValidateInput(false)] 

Es ist eine Weile her, seit ich diese in eine der Seiten, die ich angelegt habe ich zu tun hatte, aber ich denke, dass sie immer noch funktionieren.

+0

Ich bearbeite die Frage. bitte sieh das – Kianoush

0

Verwendung System.Web.HttpContext.Current.Request.Unvalidated.Form["Editor1"] die Eingabevalidierung für die gesamte Seite zu deaktivieren oder auf allen Seiten ist eine schlechte Idee!

0

Ich habe schließlich diese Arbeit durch die bearbeitete Wert in jQuery vor AJAX Posting abfängt und den Wert wie zu entkommen:

$("#Textareaeditor").val(escape(-get value from editor-); 

Dann server Sie tun gerade:

model.property = URI.unEscapeDataString(model.property). 

Diese für md funktioniert als nichts anderes tat und ich nicht requestValidationMode=2.0 setzen wollte.

Verwandte Themen