モデルでMVCを使用しています。私はリッチテキスト入力を受け入れるコントローラに[ValidateInput(false)]
を使用しました。これはうまくいった。今私は私が好む[AllowHtml]
(post)を使用することを可能にする以下の記事を見つけました。AllowHtmlがモデルでは最初に動作しません
[MetadataType(typeof(YourEntityMetadata))]
public partial class YourEntityClass
{
}
public class YourEntityMetadata
{
[AllowHtml]
public string YourPropertyWithHtml { get; set; }
}
私はこれを試しましたが動作しませんでした。テストの理由から、AllowHtml
を自動生成モデルのプロパティに直接追加しましたが、これも機能しませんでした。どちらの場合も、私は同じエラー「潜在的に危険な要求...」を受け取りました。
入力はCKEditorの単純なリッチテキスト<p> lorem <\p>
です。 コントローラは、データベースにアクセスするための実際の書き込みと、モデルの最初のModelContainerへのアクセスを行う別の関数を呼び出します。
[AllowHtml]
が動作しないような自動生成機能がありますか?コントローラがエンティティに直接アクセスしたり作成したりすることなく、エンティティを作成してデータベースに保存する別の関数に文字列を渡すことは問題ですか?
EDIT
XSRFトークンをチェックするフィルタを無効にしました。
public class ViewTest
{
[AllowHtml]
public string BlockContent { get; set; }
}
、まだ要求がでマークされています。単純なビューモデルで
public int SaveBlock(string blockCont)
{
var testt = new ViewTest() { BlockContent = blockCont };
return 0;
}
:私は、コントローラのメソッドをストリップダウン
<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" />
:私は、要求の検証モードが設定されています潜在的に危険なエラーです。
'[AllowHtml]'は、正しいプロパティに適用されていると仮定するとうまく動作します。 –
自動生成されたクラスコードには何も置かないでください。実際、エンティティクラスにこのプロパティは必要ありません。ビューからアクションメソッドへデータを転送するビューモデルを作成し、この属性を関連するプロパティに適用する必要があります。 – Shyju
[この回答](http://stackoverflow.com/a/4866070/6268935)と[この回答](http://stackoverflow.com/a/82170/6268935)を見てください。 – Arman