MVCの経験が1年ほど経っても、私はまだ1つのことについて混乱しています。ModelState.IsValidでDataAnnotationsを効果的に使用するにはどうすればいいですか?単純なチュートリアルの例では、これはすべてうまく動作し、私はそれについての質問はありません。しかし、私は現在ログインしているユーザーに基づいてこれを提供するためのユーザではなく、ビジネスロジックをしたくないMVCモデルのバインディング/検証
今すぐフィールドAddedByUserがデータベースに必要とされるPublic Class Movie
Public Property MovieID As Integer
Public Property Title As String
Public Property Year As Integer
Public Property AddedByUser As String
End Class
:しかし、私は次のモデルを持っているはず。このシナリオでどのようにDataAnnotation属性を使用しますか?
Public Function SaveMovie(ByVal entity as Movie) As ActionResult
If ModelState.IsValid
// Save to DB here...
End If
Return View(entity)
End Function
...ビューバインディングにそのフィールドがないため、検証が失敗します。私はこれのための隠されたフィールドを持っているべきですか? SaveMovieアクションのカスタムビューモデルを作成する必要がありますか?私はビジネスロジックで私自身の検証を書くことができると思いますが、なぜモデルバリデーションを使うのですか?おそらくカスタムモデルバインダー?これらのタイプのシナリオを処理する最良の方法は何ですか?
挿入操作と更新操作と検証の違いについてもう少し具体的なシナリオを教えてください。更新操作では、オブジェクトの主キーが必要です。しかし、それはインサートの場合ではありません。この1つの重要な特性のために、挿入と更新のために別々のモデルを用意することになっていますか?