c# - 为什么 dataAnnotations 对 Stuent 的 CourseList 属性无效?
问题描述
当我使用 dataSystem.ComponentModel.DataAnnotations
时,我遇到了问题。我定义了一个包含 2 个属性的 Student 类;一个是 Name 属性,另一个是 CourseList 属性;当我使用 Validator.TryValidateObject 方法验证 Sutent 实例时,对 CourseList 没有影响。谁能帮我
using System;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
namespace C
{
class Program
{
static void Main(string[] args)
{
var user = new Stuent();
var context = new ValidationContext(user, null, null);
var results = new List<ValidationResult>();
Validator.TryValidateObject(user, context, results, true);
}
}
public class Stuent
{
[Required]
public string Name { get; set; }
public List<Course> CourseList { get; set; }
}
public class Course
{
[Required]
public string CourseName { get; set; }
}
}
解决方案
您必须创建自定义验证属性来验证您的 CourseList 属性。
我对您的上述代码进行了一些更改,并创建了一个自定义验证属性。请检查此链接。
您可以运行并检查此代码,当您不为 CourseName 属性赋值时,它会显示验证消息。
推荐阅读
- vue.js - 向 VUE 中的动态对象添加“必需”验证
- python - 如何根据python中不同文件的变量名添加值
- notion-api - 使用概念 API 进行授权时出现错误“缺少或无效的 redirect_uri”
- c++ - 渲染单个事物而无需在 sdl 中清除整个屏幕
- visual-studio-code - VS 代码在创建新主题时显示警告
- excel - 当我尝试更改 Excel 单元格的值时,VBA 宏崩溃
- laravel - 在 Laravel 中解析模型中的 Json 内容
- java - 使用 ConfigurationFactory(Log4j 的编程配置)时如何从 application.properties 读取属性?
- c++ - 未找到 SDL2main 和 SDL2.dll 文件
- linked-list - 当在一个完整的循环链表上使用弗洛伊德算法时,头部变为无