2011-02-09 11 views
0

1対多関係の2つのテーブル、キャンペーンと広告があります。広告作成中、ユーザは、広告が属する事前定義されたキャンペーンを選択する。キャンペーンにはRRP金額フィールドがあり、広告には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; } 
関連する問題