如何将条件必需属性放入类属性中以与 WEB API 一起使用?

2024-01-10

我只想放条件必需属性这是与WEB API

Example

public sealed class EmployeeModel
{
      [Required]
      public int CategoryId{ get; set; }
      public string Email{ get; set; } // If CategoryId == 1 then it is required
}

我正在通过(动作过滤器属性)


您可以自己实现ValidationAttribute。也许是这样的:

public class RequireWhenCategoryAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var employee = (EmployeeModel) validationContext.ObjectInstance;
        if (employee.CategoryId == 1)
            return ValidationResult.Success;

        var emailStr = value as string;
        return string.IsNullOrWhiteSpace(emailStr)
            ? new ValidationResult("Value is required.")
            : ValidationResult.Success;
    }
}

public sealed class EmployeeModel
{
    [Required]
    public int CategoryId { get; set; }
    [RequireWhenCategory]
    public string Email { get; set; } // If CategoryId == 1 then it is required
}

这只是一个示例。它可能存在铸造问题,我不确定这是解决此问题的最佳方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将条件必需属性放入类属性中以与 WEB API 一起使用? 的相关文章

  • WebClient.DownloadDataAsync 冻结了我的 UI

    我在 Form 构造函数中的 InitializeComponent 之后有以下代码 using WebClient client new WebClient client DownloadDataCompleted new Downloa
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • C free() 是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 malloc 和 free 如何工作 https stackoverflow com questions 1119134 how malloc and free work include
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 如何以编程方式播放 16 位 pcm 数组 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含 16 位 pcm 值的短 数组 我希望能够在不添加任何标题 也不将任何文件保存到内存的情况下播放它 我知道我可能需要一个提供
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • 带有运算符语法的错误消息,但不带有函数语法的错误消息

    为什么我在调用 unary 时收到错误消息 使用运算符语法 如果我用函数语法调用它就可以了 现场演示 https godbolt org z j7AbeQ template
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • ALTER TABLE ... ADD CONSTRAINT 失败时将事务回滚到保存点

    有没有办法在事务中添加检查约束and如果失败回滚到以前的保存点 而不是回滚整个事务 就我而言 当 ALTER TABLE ADD CONSTRAINT 命令失败时 事务无法回滚到保存点 尝试这样做会引发 InvalidOperationEx
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • Linq.Select() 中的嵌套表达式方法调用

    I use Select i gt new T 每次手动点击数据库后将我的实体对象转换为 DTO 对象 以下是一些示例实体和 DTOS 用户实体 public partial class User public int Id get set
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 如何根据 Rails 中输入的用户日期继续每周向用户发送电子邮件[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Rails 上的新功能 目前使用 W
  • 从 STL std::queue 中删除而不破坏删除的对象?

    我在 STL 容器 队列和列表 上找到的所有文档都说 对于任何删除函数 都会调用删除对象的析构函数 这意味着我无法在任何时候使用 std queue 来使用一个队列 该队列只是需要对其执行某些操作的对象列表 我希望能够在对象排队等待我对它们
  • 如何让 Gradle 在 Java 测试之前编译 Groovy 测试

    Gradle 的 Groovy 插件声称它 supports joint compilation which allows to freely mix and match Groovy and Java code with dependen
  • 如何使用 java 将逗号 (,) 替换为点 (.)

    我有一个String str 12 12我想用 点 替换 逗号 以进行十进制数计算 目前我正在尝试这个 if str indexOf 1 str replaceAll 请帮忙 您的问题不在于匹配 替换 而是 String 是不可变的 您需要
  • 类型化的函数数组

    我正在努力弄清楚是否可以在 TypeScript 中声明静态类型的函数数组 例如 我可以这样做 foo data string gt void function data 但是 如果我希望 foo 成为一个接受字符串且不返回任何内容的函数数
  • D3 V4 中地图中的圆圈显示的位置不正确

    我正在使用教程来学习如何在 D3 v3 中生成地图 但我正在使用 D3 v4 我只是想让一些圆圈出现在地图上 见下文 该代码有效 只是圆圈位于内华达州上空并且应该位于湾区 我想这是地图投影和投影坐标之间的不匹配 我不确定地图所在的投影 但我
  • dplyr 用于行分位数

    我有一个 df 层 每个层都有 1000 个来自该层估计值的后验分布的样本 mydf lt as data frame lapply seq 1 1000 rnorm n 100 colnames mydf lt paste s seq 1
  • 将其他编辑器与 TortoiseHg 一起使用

    我正在尝试使用 TortoiseHG 的其他编辑器 而不是 Windows 记事本 我已经尝试过这里提到的解决方案 Mercurial 和 Notepad 集成 https stackoverflow com questions 92078
  • 我可以改进这个 JQuery 图像替换代码吗?

    HTML 看起来有点像 dl dt img src Something 1 dt dd Something 1 Text dd dl 此 HTML 重复 1 次或多次 因此同一页面上可能有许多 HTML 实例 我用来扩展 dd 并替换图像的
  • REST、HTTP DELETE 和参数

    向 HTTP DELETE 请求提供参数是否存在非 RESTful 的情况 我的场景是 我正在建模 您确定要删除它吗 设想 在某些情况下 资源的状态表明请求的删除可能无效 您可能可以自己想象一些需要确认删除的场景 我们采用的解决方案是向删除
  • 盐是否需要随机才能保护密码哈希?

    我对安全性知之甚少 我需要找到基础知识的基本解释 并且正在尝试想出一种合理的方法来使用 Net 将用户密码存储在数据库中 这是我当前的解决方案 private static byte HashPassword string password
  • 从 .Net 打印服务器端(不带 WinForms)

    嘿 印刷迷需要一些指导来引导我朝着正确的方向发展 我正在为当地一家商店开发一个 epos 系统 稍后我们将把它与一个电子商务网站结合起来 epos 系统的前端将是 WinForms 因此我们可以轻松处理 USB 设备 并且我们将使用 Web
  • 如何将常规 numpy 数组转换为记录数组?

    我读了一系列数字 np array f read split dtype np float64 然后我使用以下方法将其转换为二维数组np reshape 之后如何转换arr到记录数组 我尝试过 类似 以下操作 filename unstru
  • 使用 bash 脚本在 EC2 实例上启动会话管理器后如何在 EC2 实例上运行命令?

    我正在编写 bash 脚本来使用会话管理器在 ec2 实例上安装缺少的补丁 我可以使用脚本启动会话 但我不确定如何使用脚本在其上运行命令 instanceid i 098xxxx echo instanceid echo instance
  • Snowflake 身份验证令牌已过期 (390114) - Snowflake-SQLAlchemy 是否有心跳代码?

    我开发了一个 Flask 应用程序 使用 SQLAlchemy 连接到 Snowflake DB 作为后端 如果网站闲置时间超过 4 小时 我会遇到 Snowflake 身份验证令牌过期问题 我在谷歌上查了一下并找到了答案 https gi
  • jQueryUI 手风琴 - 每页可以有多个吗?

    我对 jQuery 很陌生 但已经找到了手风琴小部件并让它在大部分情况下都可以工作 我的问题是 一页上是否可以有多个手风琴 我有几个列表需要在视觉上分开 并且每个列表都需要是自己独立的手风琴 到目前为止 这是我的代码
  • Typescript 中动态导入模块的类型/类是什么?

    我在打字稿中查找导入模块的类型时遇到问题 有人可以帮助我吗 为了澄清我的问题我有一个模块module ts export class RSL1 然后我将其加载到我的index ts with const script await impor
  • 单击锚点时如何设置/存储 cookie

    我正在尝试使用 Cookie 以便引用单击的锚标记应用默认样式或特定样式 即使浏览器关闭 重新打开也是如此 因此 如果用户单击第二个链接 关闭或刷新浏览器并重新打开 则样式应仍处于活动状态 如果这是第一次 则应应用默认样式 这有点超出了我的
  • 如何测试 Greasemonkey 脚本,尤其是在网页的本地副本上?

    我有自己的 javascript 需要用 Greasemonkey 进行测试 我以前从未与 Greasemonkey 合作过 我如何测试脚本 我没有在万维网上测试它 我已经保存了目标页面 Firefox gt 将页面另存为 gt 网页 完成
  • 如何将条件必需属性放入类属性中以与 WEB API 一起使用?

    我只想放条件必需属性这是与WEB API Example public sealed class EmployeeModel Required public int CategoryId get set public string Emai