Csharp/C#教程:WebApi POST不包含ID字段分享


WebApi POST不包含ID字段

我仍然只需要几天的ASP.NET和WebAPI框架,所以我必须错过一些非常简单的东西。

我有一个模型,有一些属性和ID(作为一个属性,有一个私有的setter但没有帮助)。

public long ID { get; private set; } [Required(ErrorMessage = "Location coordinate X is required.")] public double X { get; set; } [Required(ErrorMessage = "Location coordinate Y is required.")] public double Y { get; set; } 

然后我有一个控制器方法post:

 public HttpResponseMessage Post(MyModel model) 

当我启动项目并转到自动生成的API文档时,我可以看到样本包含ID作为输入字段。 我希望API忽略ID输入字段。 我可以自己忽略它,但我不喜欢我的代码中那些必须记住 – 不要使用的东西。

一种选择是为输入创建一个单独的模型,但这意味着我必须维护两个类而不是一个。

是否有任何数据注释完全忽略此属性?

试试:

 [ScaffoldColumn(false)] 

html帮助程序将不再看到ID属性。 但是,如果模型绑定器在请求中看到匹配的值,它仍可能会尝试将值移动到ID属性中。

所以你用Exclude来装饰它以避免属性被绑定:

 [Exclude] public long ID { get; set; } 

您也可以(在Post函数中)从状态中删除属性:

上述就是C#学习教程:WebApi POST不包含ID字段分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  ModelState.Remove("Id"); // Key removal if (ModelState.IsValid) { } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1022933.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐