(フォームフィールドにhtmlが挿入された場合など)HttpRequestValidationExceptionsを処理して、投稿後にユーザーに返信して意味のあるエラーを表示して問題を強調表示します。HttpRequestValidationExceptionを処理し、AddModelErrorを使用して意味のあるエラーを返すにはどうすればよいですか?
は例えば、ログインページで、ユーザーがユーザー名フィールドにいくつかの無効な文字があれば、私はHttpRequestValidationExceptionをキャッチし、ユーザー名フィールドが強調表示されたログインページにユーザーを返すようにしたいと思います。
私はonExceptionを方法を使用してHandleErrorAttributeから継承したクラスでエラーをキャッチすることができます。
私はエラーを追加するコントローラ * に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;
}
}
ありがとう!
ありがとうございました!これは間違いなく彼らが私にとって最善の方法であるように見えます。私が指摘したサンプルの答えを見ていきます。 – Paul