私はASP.NET CoreとFluentValidationを使用しています。例外フィルタでハンドル検証に失敗し、ビューを再表示します
if (!ModelState.IsValid)
return View("nameOfViewRenderedByGetAction", model);
しかし、私の検証は、実際にValidationException
をスローFluentValidation、によって、サービスで実行されます。POSTアクションが無効な入力を受け取ると
、それは検証エラーと、入力フォームビューを再レンダリングすることが通例です。例外フィルタで処理したい:
public class ValidationFilterAttribute : ActionFilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext context)
{
// only handle ValidationException
var ex = context.Exception as ValidationException;
if (ex == null) return;
// re-render get action's view, or redirect to get action
// ??
}
}
私は "??"コアは多くのタイプのシグネチャを変更しており、ExceptionContext
はこの作業を行うために必要なデータを表示しないためです。
どうすればよいですか?
を行うことができる方法です。また、検証エラーなしでレンダリングするので、情報が失われます。 – grokky
例外フィルタを使用して例外を成功にすることはできません。しかし、必要なデータを渡すことができます。私は答えを編集しました。 –