0

我有使用数据注释来验证 ModelState 的想法。这非常有效。我遇到的问题是 [Required] Data Annotation 正在对 post 的 [Key] 字段强制执行。我们的数据层负责设置 Id,我们不希望任何使用该服务的人担心 Id。在 WebApi2 中有没有办法解决这个问题?

我已经查看了这个问题,并在检查有效的 ModelState 之前从 POST 方法中的 ModelState 中删除了 Id 字段。问题在于我们对 ModelState 使用了过滤器。

编辑:

在做了更多研究之后,我本质上想要做的是 [Bind] 属性在 MVC 中的作用。经过一番研究,看起来这不是 WebApi 中尚未实现的功能。如果有人有任何想法,请随时发布。

4

1 回答 1

0

您可以做的是用数据传输对象替换您的实体,该对象与没有 ID 字段的原始实体相同。例如,

原始实体可能看起来像这样

public class User 
    {
        [Required]
        public Guid UserId { get; set; }
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public string Username { get; set; }
        public string Email { get; set; }

    }

DTO 可能看起来像这样

public class UserDto 
    {

        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public string Username { get; set; }
        public string Email { get; set; }

    }

希望这可以帮助。

于 2014-02-12T06:02:05.660 回答