【问题标题】:Allow RangeAttribute to apply to properties in sub-viewmodels允许 RangeAttribute 应用于子视图模型中的属性
【发布时间】:2012-10-03 03:52:25
【问题描述】:

我正在使用视图模型通过 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 值。但是,当我使用 HtmlEditorFor 扩展时,这些不会出现,因为它们不在使用的特定 Value 属性上。

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; }
}

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

【问题讨论】:

    标签: c# asp.net-mvc-3 data-annotations


    【解决方案1】:

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

    【讨论】:

    • 真的没有想到那种欢呼声。但是,我想在很多不同的情况下使用这个 MyViewModel,并且不希望为每一个都创建一个子类。
    猜你喜欢
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2017-03-25
    • 2013-05-11
    • 2012-03-10
    • 2020-01-04
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多