Ich verwende MVC mit Modell zuerst. Ich benutzte [ValidateInput(false)]
auf meinem Controller, der eine Rich-Text-Eingabe akzeptiert. Das hat gut funktioniert. Jetzt habe ich den folgenden Beitrag gefunden, der mir erlaubt, [AllowHtml]
zu verwenden, was ich bevorzugen würde (post).AllowHtml funktioniert nicht mit Modell zuerst
[MetadataType(typeof(YourEntityMetadata))]
public partial class YourEntityClass
{
}
public class YourEntityMetadata
{
[AllowHtml]
public string YourPropertyWithHtml { get; set; }
}
Ich versuchte dies, aber es hat nicht funktioniert. Aus Testgründen habe ich AllowHtml
direkt auf die Eigenschaft im automatisch generierten Modell hinzugefügt, was ebenfalls nicht funktioniert hat. In beiden Fällen habe ich den gleichen Fehler "potentiell gefährliche Anfrage ..."
Die Eingabe ist ein einfacher Rich Text <p> lorem <\p>
von CKEditor. Der Controller ruft eine separate Funktion auf, die den eigentlichen Schreibzugriff auf die Datenbank und den Zugriff auf das Model ModelContainer zuerst ausführt.
Gibt es in der automatischen Generierung etwas, das die [AllowHtml]
möglicherweise verhindert. Ist es ein Problem, dass der Controller nicht direkt auf die Entität zugreift oder sie erstellt, sondern die Zeichenfolge an eine andere Funktion weitergibt, die die Entität erstellt und sie in der Datenbank speichert?
EDIT
ich die Filter, die für die XSRF Token überprüfen deaktiviert. Ich habe den Validierungsmodus Set Anfrage:
<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" />
I, um die Controller-Methode abgespeckte:
public int SaveBlock(string blockCont)
{
var testt = new ViewTest() { BlockContent = blockCont };
return 0;
}
mit einem einfachen Blick Modell:
public class ViewTest
{
[AllowHtml]
public string BlockContent { get; set; }
}
und immer noch die Anforderung markiert mit ein "potentiell gefährlicher" Fehler.
'[AllowHtml]' funktioniert gut, vorausgesetzt, es wird auf die richtige Eigenschaft angewendet. –
Sie sollten nichts auf den automatisch generierten Klassencode setzen. Tatsächlich brauchen Sie diese Eigenschaft in Ihrer Entitätsklasse wirklich nicht. Sie sollten ein Ansichtsmodell erstellen, um Daten von Ihrer Sicht in die Aktionsmethode zu übertragen und dieses Attribut auf die entsprechende Eigenschaft anzuwenden. – Shyju
Werfen Sie einen Blick auf [diese Antwort] (http://stackoverflow.com/a/4866070/6268935) und [diese Antwort] (http://stackoverflow.com/a/82170/6268935). – Arman