C# 允许RangeAttribute应用于子viewmodels中的特性
我使用viewmodel将数据传递到我的Razor视图,并使用jquery不引人注目的验证和标准属性装饰(MVC 3.0)。我的viewmodel如下所示(忽略摘要名称): 我希望能够使用不同的范围属性来装饰MyViewModel上的Item和Item2值。但是,当我使用Html的EditorFor扩展名时,它们不会出现,因为它们不在所使用的特定值属性上 i、 eC# 允许RangeAttribute应用于子viewmodels中的特性,c#,asp.net-mvc-3,data-annotations,C#,Asp.net Mvc 3,Data Annotations,我使用viewmodel将数据传递到我的Razor视图,并使用jquery不引人注目的验证和标准属性装饰(MVC 3.0)。我的viewmodel如下所示(忽略摘要名称): 我希望能够使用不同的范围属性来装饰MyViewModel上的Item和Item2值。但是,当我使用Html的EditorFor扩展名时,它们不会出现,因为它们不在所使用的特定值属性上 i、 e 无论如何,我可以通过自定义属性或其他形式实现这一点,例如自定义数据绑定、自定义属性等如果您愿意接受两种不同的类型,可以将MyView
无论如何,我可以通过自定义属性或其他形式实现这一点,例如自定义数据绑定、自定义属性等如果您愿意接受两种不同的类型,可以将MyViewItem子类化,并让派生类为其定义不同的RangeValidationAttribute 如果您愿意接受两种不同的类型,可以将MyViewItem子类化,并让派生类为其定义不同的RangeValidationAttribute 我真的没想到,干杯。然而,我想在很多不同的情况下使用MyViewModel,我不想为每种情况都创建一个子类,我真的没有想到这一点。然而,我想在很多不同的情况下使用MyViewModel,并且不希望为每种情况都创建一个子类。
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; }
}
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; }
}