SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET MVC 3 リリース候補版のお知らせ

ScottGu's Blog翻訳

Unobtrusive(目立たない)JavaScriptと検証

 最初のASP.NET V3プレビュー・リリースについてのブログ投稿で、ASP.NET MVC 3に追加される検証およびJavaScript/AJAX改善点について、いくつか話しました。

 ASP.NET MVC V3でうれしい改善点の1つが、ASP.NET MVCのAJAXおよび検証ヘルパーの両方で、Unobtrusive(目立たない)JavaScriptの方法がデフォルトで使用されることです。Unobtrusive(目立たない)JavaScriptは、HTMLタグにインラインのJavaScriptを注入せず、新しいHTML5の『data-』規約を使って、動作の分別がよりクリーンに行えます(便利なことにIE6を含む古いブラウザでも動作します)。これにより、HTMLをより小さくクリーンにしたり、オプションではより簡単なJSライブラリの交換やカスタマイズができます。ASP.NET MVC 3の検証ヘルパーも、jQueryValidateプラグインをデフォルトで使用するようになりました。

デフォルトでクライアント側検証をオンに

 ASP.NET MVCの以前のバージョン(先月のASP.NET MVC V3ベータ版を含む)では、クライアント側の検証を行うのに、明示的にHtml.EnableClientValidationを、ビュー内で呼び出す必要がありました。本日のRCからはもう必要なくなり、(目立たない方法を使用した)クライアント側の検証が、デフォルトで利用できるようになりました(web.configのconfig設定でオフにできます)。

 クライアント側の検証を行うのに、適切なjQuery+jQuery検証ライブラリは、まだサイト内で参照する必要があります。明示的にJavaScriptファイルを参照するので、サーバー上でホストするか、MicrosoftまたはGoogleなどのCDN (Content Delivery Network)から参照するかを選択できます。

リモートのバリデータ

 本日のRCで新しい検証機能に、[Remote]という新検証属性があり、jQuery検証プラグインのリモートバリデータサポートが利用できます。これにより、サーバー側でしか行えない検証ロジックを実行するために、サーバー上で定義した独自のメソッドを、自動的に呼び出すクライアント側検証ライブラリが利用できます。そのため、クライアント側検証内で、このようなシナリオの統合が、非常にクリーンになります。

粗めのリクエスト検証

 ASP.NET MVCでは、ビルトインでリクエスト検証がサポートされており、自動的にXSSやHTMLインジェクション攻撃を防御するにようになっています。しかし、たまにユーザーからのHTMLコンテンツの投稿を可能にしたい場合など、明示的にリクエスト検証をオフにしたい場合があります(例えば、ブログ編集やCMSコンテンツ編集など)。

 モデルがバインドされている間、プロパティ毎にリクエスト検証を無効にできる[SkipRequestValidation]属性を、モデルまたはビューモデルに追加できるようになりました。

 モデル/ビューモデルに上記の属性を追加すると、一度設定すれば、すべてのシナリオで適用できるようななります。

次のページ
RCのその他の改善点

この記事は参考になりましたか?

Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5576 2010/11/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー