3

ASP.NET MVC2 を使用しています。
モデルのフィールドに注釈を付けてチェックする方法が気に入っていますModelState.IsValid

それをチェックする明白な理由は検証を行うときですが、新しい検証ルールがモデルに適用される場合に備えて、常にチェックする必要がありますか?
そうすれば、コントローラーがチェックするかどうかを忘れたり、チェックする必要がなくなりますIsValid

すべての場合にこのチェックを行わない理由はありますか? コントローラーのアクションに副作用 (DB 書き込みなど) があるときだけでしょうか?

4

4 に答える 4

7

しかし、新しい検証ルールがモデルに適用される場合に備えて、常にチェックする必要がありますか?

有効な状態を持たないモデルを永続化してしまう場合は、常にこのチェックを行う必要があります。

于 2012-06-11T10:25:05.537 に答える
5

一般に、asp.net-mvc では、アクションに渡されるモデルはビュー モデルであり、アクションが動作するために必要なすべてのデータのみが含まれています。そのデータが無効である場合、理論的には、アクションがその仕事をすることは不可能です。

ModelState.IsValidアクションに必要なすべてのデータが良好な状態にあり、アクションの準備が整っていることを確認します。そのデータを検証したくない理由がわかりません。

于 2012-06-11T10:25:37.977 に答える
2

モデルで収集されたデータを使用して何かを実行する直前に、モデルが有効かどうかを常に確認する必要があります。それがそもそも検証の目的です。

于 2012-06-11T10:28:26.080 に答える
2

言及するのは明らかですが、試してみます。モデルを投稿していないときは、モデルの状態を確認する必要はありません。一般的なシナリオは、サービスからデータを取得し、get アクションで表示する場合です。

于 2012-06-15T23:41:57.447 に答える