0

如何在不知道每个集合中有多少元素的情况下将所需属性(如验证)应用于以下内容:

public class MyViewPageViewModel
{
  [Required]
  public List<int> IntCollection { get; set; }

  [Required]
  public Dictionary<int, string> IntAndStringAllValueCollection { get; set; }

  [Required("Value")]
  public Dictionary<int, string> IntAndStringValueValidationCollection { get; set; }

  [Required("Name","HairColor")]
  public List<Person> PersonNameValidationCollection { get; set; }

}

对于 IntCollection,我希望每个元素都是必需的。对于 IntAndStringAllValueCollection,我希望每个键和每个值都是必需的。对于 IntAndStringValueValidationCollection,我不希望 Key 是必需的,但我希望 Value 是必需的。

4

1 回答 1

0

尽管我希望能够按照上述方式进行操作,但解决问题的一种方法是:

public class PageViewModel
{
    public List<RequiredStartAndEndDateTuple> OnlineDates { get; set; }
}

public class RequiredStartAndEndDateTuple
{
    public RequiredStartAndEndDateTuple() { }
    public RequiredStartAndEndDateTuple(DateTime? startDate, DateTime? endDate)
    {
        OnlineStartDate = startDate;
        OnlineEndDate = endDate;
    }

    [Required(ErrorMessage = "Start Date Required")]
    public DateTime? OnlineStartDate { get; set; }

    //-- Note, no attribute means end date not required
    public DateTime? OnlineEndDate { get; set; }
}

如果您对控制器和视图位感兴趣,请查看:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

专门抓取项目源代码并使用强类型助手检查“顺序”页面

于 2010-10-22T19:40:58.393 回答