【发布时间】:2018-09-10 22:58:22
【问题描述】:
这是我的模型:
public sealed class UserModel
{
[Key]
[Required]
[StringLength(20, MinimumLength = 4)]
public string Username { get; set; }
[Required]
[EmailAddress]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
[StringLength(20, MinimumLength = 4)]
public string Password { get; set; }
public bool IsValid { get; set; }
}
Username、Email和Password由用户提供,但是IsValid只能由服务器修改,换句话说,如果用户提供true,服务器应该返回BAD REQUEST或者不考虑这个值。
所以,我可以在创建模型时将属性设置为false,但它并不干净。
有没有办法将属性设为私有或“仅限服务器”?
[2018-04-01]:
我找到了一个nice article,其中使用了[BindNever],遗憾的是,它不适用于[FromBody] 所指出的here 的数据。所以目前我只是自己在 POST 处理程序中将属性设置为false,但它非常难看,因此我仍在寻找其他方法!
[2018-04-02]: 终于找到了 ! Check this out !
【问题讨论】:
-
把
public改成private? -
@MikeMcCaughan 我试过了,但似乎私有字段没有在数据库中注册.. :/
标签: c# asp.net json asp.net-web-api