私はこれのviewmodelはAllowHtml、HttpRequestValidationExceptionとにModelState
public class FooBarViewModel
{
public string Foo { get; set; }
[AllowHtml]
public string Bar { get; set; }
}
代わりの.Foo
はそれでHTMLで提出される場合HttpRequestValidationException
を投げを持って、私はModelState
にメッセージを追加したいです。どうすればいい?
これは現在おそらく動作します。私は、アクションフィルタなどで既存のビットを活用することを望んでいましたが、どこから開始するのかは不明です。 – kenwarner
@ qntmfred実際にIExceptionFilterインターフェイスを実装し、そこにHttpRequestValidationExceptionをトラップするアクションフィルタを使用することができますが、問題はモデル状態にエラーを追加してビューをレンダリングするだけですがコントローラアクションは実行されません。これは、そのルートに進むことを決定した場合、このカスタムアクションフィルタ内に戻る可能性のあるViewResultにビューモデルを渡す必要があることを意味します。これは、あなたがまだAllowHtmlでFooプロパティを装飾し、次にチェックするカスタムアクションフィルタを持っていると言われています... –
...投稿された値にHTMLが含まれているかどうか、そして単にモデル状態にエラーを追加するかどうか。そうすれば、複数のコントローラー・アクションでこのロジックを繰り返すのを避けることができます。 –