我有以下類,它們比較簡單。基於驗證對象的自定義屬性名稱
class LineInfo
{
Id,
LineNumber,
SubAccountNumer,
MobileNumber
}
class SuspendLinesVM{
public List<LineInfo> Lines{ get;set; }
}
我在我的操作中收到SuspendLinesVM,並且所有行都是從客戶端動態創建的。屬於表單中具體LineInfo的每個元素都具有名稱,其模板名爲'lineid {Id} _ElementName'。於是,他們來到我的格式如:
lineid0001_LineNumber
lineid0001_SubAccountNumer
lineid0001_MobileNumber
lineid0021_LineNumber
lineid0021_SubAccountNumer
lineid0021_MobileNumber
當驗證時發生一些錯誤時,我需要一種方法來設置失敗的屬性,因爲它要求突出顯示視圖中的無效字段。
我留下了困惑的地方。
public class LineInfoValidator: AbstractValidator<LineInfo>
{
public LineInfoValidator()
{
RuleFor(m => m.LineNumber)
.NotEmpty().WithMessage("Line # is required").OverridePropertyName(???)
.InclusiveBetween(1, 9999).WithMessage("Line # must be in range [1, 9999]").OverridePropertyName(???)
...
我需要一種方法來像做*(例如,propertyName的)=>收益的String.Format( 'lineid_ {0} _ {1}',instance.Id,propertyName的)*。
任何想法?
這是正確的。但是對於我的集合中的所有LineInfo,每個屬性名稱將會像'LineNumber','SubAccountNumer'等一樣。視圖不會區分錯誤屬於哪個LineInfo,並且根本不會呈現錯誤,因爲屬性名稱必須像'lineid0001_LineNumber'。如果只有它很容易:) – Madman