1

次の問題があります: フィールドの検証にリモート検証を使用していますが、例外を管理しようとしています

public class ValidationController : Controller
{
    List<string> values = new List<string>() { "AAAA", "BBBB" }; //blacklist

    public JsonResult NameAllowed(string ID)
    {
        throw new Exception();
        //return Json(!values.Contains(ID), JsonRequestBehavior.AllowGet);
    }

}

ただし、この場合、フォームは送信されておらず (ネットワーク キャプチャ、開発ツールバーによるエラー 500)、エラーは表示されません。

  1. 例外を管理する最善の方法は何ですか (タイムアウトや予測不可能な例外など)?
  2. フォームを送信するためにこれらのエラーをスキップする解決策 (サーバー側のパラメーター) はありますか?

前もって感謝します

4

1 に答える 1

1

リモート検証は、ユーザーが無用なデータをサーバーに送信するのを防ぐクライアントへのグラフィック フィードバックとしてのみ使用する必要があります。検証する必要があるすべてのものに対して常にサーバー側の検証を行う必要があります。そうすると、フォームは送信されますが承認されず、無効な入力を含む再レンダリングされたフォームとともに検証エラーが表示されます。

クライアント側/リモート検証を、2 つの目的を持つ「事前検証」として取り上げます。

  1. 無駄なサーバーサイド処理を防ぐ
  2. フォームが送信されるのを待つのではなく、より応答性の高いデータの検証を行います。

ただし、実際にデータを検証するために使用しないでください。

編集

とはいえ、検証コードを適切に記述し、try キャッチを使用して、ハンドルされていない例外を逃さないようにするのはどうですか?

于 2012-09-07T11:21:36.403 に答える