2009-08-20 7 views
3

ASP.NET MVC, MySQL 및 NHibernate를 사용하여 약간의 사이트를 만들고 있습니다.ModelBinder를 사용하여 유효성 검사를 구현하는 방법

[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? 아니면 다른 곳에서?

대단히 감사합니다.

답변

2

스티브 샌더슨의 XVAL을 살펴보십시오.

비즈니스 개체는 비즈니스 논리를 적용해야하는 곳입니다.

친절

XVal

0

나는 두 번째 스티브 샌더슨, 그의 책은 놀랍습니다.

저는 Rob Conery, Scott Hanselman, Phil Haack, Scott Guthrie가 쓴 괴상한 저녁 식사 방식을 정말 좋아했습니다. 기본적으로 당신은 각 사업체에서 사업 논리에 대해 검증하는 방법을 가지고 있습니다. 이 메소드는 필드/오류 메시지를 포함하는 RuleViolations의 목록을 리턴합니다. 당신은 또한 convinience에 대한 bool 값을 노출합니다.

당신은 여기에 무료로 장을 얻을 : Nerd Dinner Chapter

관련 문제