HttpRequestValidationExceptions (たとえば、html がフォーム フィールドに挿入されたとき)を処理し、送信後にユーザーをページに戻し、問題を強調する意味のあるエラーを表示したいと考えています。
たとえば、ログイン ページで、ユーザーがユーザー名フィールドに無効な文字を入力した場合、HttpRequestValidationExceptionをキャッチし、ユーザー名フィールドが強調表示された状態でユーザーをログイン ページに戻したいと考えています。
OnExceptionメソッドを使用して、HandleErrorAttributeから継承するクラスでエラーをキャッチできます。
ここから (または他の方法で) Controller * ModelState * を取得してエラーを追加する方法はありますか?
注: 検証をオフにしたり、エラー ページにリダイレクトしたりしたくありません。
例えば:
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is HttpRequestValidationException)
{
ModelStateDictionary ModelState = <...>
ModelState.AddModelError("Error", "Invalid chars");
filterContext.HttpContext.Response
filterContext.ExceptionHandled = true;
HttpContextBase HttpContext = filterContext.HttpContext;
HttpContext.Response.Redirect(HttpContext.Request.Path);
return;
}
}
あなたが私に与えることができる助けを前もって感謝します!