いくつかの抽象化を得る1つのアプローチは、必要な他のビュー情報を含め、ビジネスモデルクラスの「ViewModel」を作成することです。
class MyObject
{
public int ID {get;set}
[Required]
[StringLength(512)]
public string Name {get;set;}
}
class MyViewModel // ViewModel for a specific view
{
public MyObject MyModel {get;set;} // the model that is being edited
// other data the view might need, set by the controller
public string SomeMessage { get; set; }
public List<SomeObject> SomeObjects {get;set;} /// e.g. for a drop-down list
}
次に、ViewModelを参照してください。
@model My.Namespace.MyViewModel
Hello @model.MyModel.Name !!!
このようにして、ビジネスクラス内の検証および/またはデータ注釈を1か所で指定するだけです。
異なる検証をしたい場合は、検証ロジックを選択的に適用するための戦略が必要です。
出典
2011-03-09 21:56:19
Rob
お返事ありがとうございます。私はまだJQueryの検証のための私の検証属性を再利用するための巧妙な方法があることを望んでいる(私はコントローラーの検証についてあまり心配していない、エンティティオブジェクトはそれをうまくいくだろう)が、 - 私が望む属性を実装する。 – Brian