1

我正在使用视图模型通过 jquery 不显眼的验证和标准属性装饰(MVC 3.0)将数据传递给我的 Razor 视图。我的视图模型看起来像这样(忽略汇总名称):

public class MyViewModel
{
   public MyViewItem Item { get; set; }
   public MyViewItem Item2 { get; set; }
}

public class MyViewItem
{
   public int Value { get; set; }
   public CustomEnum MyEnum { get; set; }
}

我想要做的是用不同的范围属性装饰 MyViewModel 上的 Item 和 Item2 值。但是,当我使用Html的EditorFor扩展时,这些不会出现,因为它们不在使用的特定 Value 属性上。

IE

public class MyViewModel
{
   [Range(0,100)] // will actually be applied on the Item.Value property
   public MyViewItem Item { get; set; }

   [Range(50,60)] // will actually be applied on the Item.Value property
   public MyViewItem Item2 { get; set; }
}

无论如何我可以通过自定义属性或其他形式来实现这一点,即自定义数据绑定、自定义属性等

4

1 回答 1

1

如果您愿意忍受两种不同的类型,您可以继承 MyViewItem 并让派生类为其定义不同的 RangeValidationAttribute。

于 2012-10-02T19:52:25.267 回答