アプリ開発ときどきアウトドア

主にJavaを使ったアプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。

1. システムエンジニアリング ASP.NET Core 実装技術

ASP.NET Core: Remote属性の過剰なHTTP要求を抑制

投稿日:

Remote属性は入力欄に対する文字入力やフォーカスが外れたタイミングで、サーバ側検証ロジックを実行できます。例えば、登録対象となるユーザIDが既に実在しないかの検証等、サーバ側でしか検証が難しい場合に有効です。

しかしながら、ユーザが文字を入力する度にサーバ側検証が実行(HTTP要求が発行)されるため、場合によってはネットワークやサーバの過剰な負荷になる可能性があります。
サーバ検証の呼び出しはキーアップイベントに紐づいているため、次のようにキーアップイベントを上書きすることで無効にできます。
(入力欄からフォーカスが外れた場合のみサーバ検証が実行されるようになる。)

...
$(function () {
    $("[data-val-remote]").keyup(function () { return false });
});
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
<script src="~/js/site-validation.js"></script>

なお、フォームのサブミット時にRequired属性等のサーバ側の検証ロジックは自動的に実行されますが、Remote属性で指定した検証ロジックは実行されません。そのためサーバ側処理(コントローラ等)で明示的にRemote属性に対応するサーバ側検証ロジックを実行する必要があります。



(adsbygoogle = window.adsbygoogle || []).push({});


(adsbygoogle = window.adsbygoogle || []).push({});

-1. システムエンジニアリング, ASP.NET Core, 実装技術

執筆者:

関連記事

ASP.NET Core: 変更ページを実行環境に反映

ASP.Net Core(3.0)の開発で、ページ(cshtml)を編集しながらページデザインを確認したい。 既定ではページを変更しても実行環境に反映れずサーバの再起動が必要となり開発効率が悪い。 サ …

jQueryによるデフォルトボタンの実装

デフォルトボタンについて Webページ上でエンターキーを押した場合、そのページ上であらかじめ決められたボタンをクリックしたかのように処理を実行する仕組みがある。何らかのデータの検索を行うようなページは …

技術検証

Linuxでの gdrive の使い方

wordpressのデータをgoogle driveにバックアップするための基礎調査を行っている。 google driveに接続可能なライブラリは幾つかあるようだが、ここでは無料でお手軽に始められそ …

ASP.NET Core: エラーメッセージ一覧のカスタマイズ

ASP.NET Core標準のasp-validation-summary属性では単純なエラーメッセージの一覧しか出力しかできません。 ここでは、asp-validation-summary属性と同様 …

chromeのjavascriptを一時的に無効化

Webアプリの開発やテストで、クライアント側のバリデーションを無効にしてサーバ側バリデーションの動作確認する、等のように一時的にjavascriptを無効にしたい場合があります。これを実現するための方 …

プロフィール ゆっきーです。
都内でシステムエンジニアをやっています。
もっと詳細を見る