2011-02-09 6 views
0

일대 다 관계가있는 캠페인 및 광고라는 두 개의 테이블이 있습니다. 광고 작성 중에 사용자는 광고가 속할 사전 정의 된 캠페인을 선택합니다. 캠페인에는 RRP 머니 필드가 있고 Advert에는 SalePrice 머니 필드가 있습니다. 내가 한 것은 제출 된 Advert.SalePrice가> = 선택한 캠페인 RRP인지 확인하는 방법입니다.범위의 db 값을 사용하여 모델 유효성 검사

모델에서이 작업을 수행 할 수 있습니까? 이것의 라인을 따라 뭔가가 Advert_Validation에 있습니까? 메서드 호출로 Range의 값을 채울 수도 있습니까?

[Range(0, getCampaignRRP(), ErrorMessage = "Value must be equal or greater than the Campaign RRP")] 
public double SalePrice { get; set; } 

아니면 컨트롤러 수준에서 확인해야합니까? 모든 도움을 주셔서 감사합니다!

모두 감사합니다,

제이

답변

2

당신은 새로운 Remote 속성을 사용할 수 있습니다. 기본적으로 액션을 호출하고 true 또는 false를 반환합니다. 예를 들어 link입니다.

0

RangeAttribute 클래스를 상속하여 대신 사용할 수 있습니다.

public class MyRange: RangeAttribute 
    { 
     public override bool IsValid(object value) 
     { 
      //Your validation here. 
      return MyValidateRange(value, 0, getCampaignRRP()); 
     } 
    } 

[MyRange(0, 0, ErrorMessage = "Value must be equal or greater than the Campaign RRP")] 
public double SalePrice { get; set; } 
관련 문제