2011-02-09 34 views
0

我有兩個表,Campaign和Advert以一對多關係。在廣告創建期間,用戶選擇廣告將屬於的預定義的Campaign。一個Campaign有一個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; }