従来のMVCアプリケーションのコーディングでは、サーバー側フォームの検証をコーディングするためのベストプラクティスは何ですか?コードがコントローラまたはモデルレイヤに属していますか?なぜ?ウィキペディアからMVC - フォームの検証を実装する場所(サーバー側)?
答えて
:
Model-view-controller(MVC)は、ソフトウェア工学で使用される建築のパターンです。パターンの使用を成功させると、ビジネス・ロジックをユーザー・インターフェースの問題から切り離し、アプリケーションの視覚的外観または基礎となるビジネス・ルールを変更することなく、他のものに影響を与えることなくアプリケーションを作成することができます。 MVCでは、モデルはアプリケーションの情報(データ)とデータを操作するために使用されるビジネスルールを表します。ビューは、テキスト、チェックボックス項目などのユーザインターフェースの要素に対応し、コントローラは、キーストロークやマウスの動きなどのユーザアクションのモデルとの通信を含む詳細を管理する。
したがって、モデル - アプリケーションとビジネスルールを保持します。
私はJoshと完全に同意します。しかし、コントローラーとモデルの間に一種のバリデーションレイヤーを作成して、データに到達する前に構文検証の大部分をモデリングできるようにすることができます。
例えば、
検証層は、日付形式、量フォーマット、必須フィールドなどを検証しますが...
だからモデルは純粋にX量などの事業の検証に集中するだろうがより大きくなければなりませんy量。
MVCでの私の経験は、これまでのところ完全なレールで構成されています。
Railsはモデルで100%検証済みです。
ほとんどの場合、これは非常にうまく機能します。私は10回のうち9回はあなたが必要とするすべてだと言うでしょう。
しかし、フォームから送信しているものがモデルと適切に一致しない部分があります。いくつかの追加のフィルタリング/並べ替えなどがあるかもしれません。
私が見つけたこれらの状況を解決する最善の方法は、基本的にModelオブジェクトのように動作しますが、フォームデータと1対1を対応付ける模倣モデルオブジェクトを作成することです。これらの擬似モデルオブジェクトは実際には何も保存されません。バリデーションが付加されたデータのバケットに過ぎません。データは、これらに入った(かつ有効である)、それは通常、直接あなたの実際のモデルに渡ってそれを転送するための非常にシンプルステップだ後は
(レールで)そのようなことの例はActiveForm
です。
基本的な構文チェックは、モデルのユーザー入力を変換するため、コントロール内にある必要があります。モデルは実際のデータ検証を行う必要があります。
- 1. MVCサーバー側の検証
- 2. Joomlaの登録フォームのサーバー側検証?
- 3. 角度2フォームのサーバー側の検証
- 4. クロスエンティティ検証を実装する場所は?
- 5. Node.jsクライアント側の応答を伴うサーバー側フォームの検証
- 6. サーバー側の検証
- 7. サーバー側の検証
- 8. asp.net MVCアプリケーションのクライアント側とサーバー側の検証
- 9. サーバー側の検証例/ Java
- 10. ASP.NET MVC jQGridクライアント側とサーバー側の検証
- 11. フォームによるバックボーン検証の実装
- 12. MVC Webサイトでフォーム提出を検証して処理する場所
- 13. MVCでの検証の実装
- 14. クライアント側の検証は、MVC
- 15. MVCカスタムクライアント側の検証
- 16. クライアント側の検証MVCアプリケーション
- 17. ASP.Net MVC:クライアント側の検証
- 18. サーバー側の検証asp.net
- 19. サーバー側の検証は
- 20. Breezeサーバー側の検証
- 21. vbscriptサーバー側の検証
- 22. Yiiカスタム検証とサーバー側検証?
- 23. voidメソッドのモデルを持たないMVCサーバー側フィールドの検証
- 24. asp.netのサーバー側の検証エンティティフレームワークを使用したMVC 3
- 25. Pushnotificationサーバー側の実装
- 26. Asp.net MVCを使用したAngularjsとサーバー側の検証によるクライアント側の検証
- 27. Django:クライアント側のフォーム検証?
- 28. ValidationSummaryクライアント側とサーバー側の検証で
- 29. ASP.NETカスタムバリデータークライアント側とサーバー側の検証
- 30. モデルを使用しないASP.NET MVC ajaxサーバー側の検証