3

ASP.NET MVC、MySQL、NHibernate を使用して小さなサイトを開発しています。

私は連絡先クラスを持っています:

[ModelBinder(typeof(CondicaoBinder))]
public class Contact {
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual int Age { get; set; }    
}

モデル バインダー:

public class ContactBinder:IModelBinder {
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) {
         Contact contact = new Contact ();
         HttpRequestBase form = controllerContext.HttpContext.Request;

         contact.Id = Int16.Parse(form["Id"]);
         contact.Name = form["Name"];
         contact.Age = Int16.Parse(form["Age"]);

         return contact;
    }
}

また、次のアクションを使用して、データベースを更新するためのフォームを含むビューがあります。

public ActionResult Edit([ModelBinder(typeof(ContactBinder))] Contact contact) {
    contactRepo.Update(contact);

    return RedirectToAction("Index", "Contacts");
}

ここまでは、すべて正常に機能しています。しかし、連絡先を更新する前に、フォームの検証を実装する必要があります。

私の質問は: この検証をどこに実装すればよいですか? ActionResult メソッドまたは Model Binder で? それともどこか?

どうもありがとうございました。

4

3 に答える 3

2

Steve Sanderson による XVAL をご覧ください。

ビジネス オブジェクトは、ビジネス ロジックを適用する場所です。

親切

ダン

XVal

于 2009-08-20T14:57:22.730 に答える
0

私はスティーブ・サンダーソンの次です。彼の本は素晴らしいです。

Rob Conery、Scott Hanselman、Phil Haack、Scott Guthrie によって書かれたオタク ディナー アプローチがとても気に入りました。基本的に、ビジネス ロジックに対して検証する各エンティティにメソッドがあります。そのメソッドは、フィールド/エラー メッセージを含む RuleViolations のリストを返します。便宜上、bool 値も公開します。

あなたはここで無料の章を手に入れます:オタクディナーの章

于 2009-08-20T15:03:40.723 に答える
0

この場合、Microsoft の推奨事項であるサービス レイヤーによる検証に従う方がよいと思います。

于 2009-08-20T15:03:48.070 に答える