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

主に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, 実装技術

執筆者:

関連記事

WindowsにApacheを構築

アプリケーション開発環境として主にWindowsを使っています。 開発時の検証で使用するミドルウェアがApacheを使用することが多いので、ここでは開発環境であるWindowsにApacheを構築する …

ftp, ftps, sftpの違い

開発対象システムの連携先システムとして、ftpsやらftpsサーバが指定される場合がある。 私の場合、開発標準の役割を担う場合が多く、これらの仕様を把握し、動作確認や単体テスト用のダミーのサーバを用意 …

システムエンジニアによる嫌われる勇気の実践

愚直に成果を出すことしか知らなかったシステムエンジニアが、デスマーチなプロジェクトで心を病みそうになったが、「嫌われる勇気」を読んで逆に強くなったお話です。 モノ作りが好きだが「コミュニケーションが苦 …

DOSバッチリファレンス

ちょっとした事でbatファイルを作成することが多い。 そのたびにネット検索するのが非効率なため、リファレンス化しようと思う。 そういう目的なので、自分がよく調べる項目に絞っている。 開発時の注意点 直 …

ASP.NET Core: IHttpClientFactoryの単純サンプル

IHttpClientの使い方やサンプルの記事を書きましたが、後から見るとちょっと量が多いと感じました。 とりあえず動かしてみたい、概略を知りたい、急いでいる等の人向けに、もっと単純なサンプルを用意し …