WebApi POST 不包括 ID 字段
本文关键字:字段 ID 不包括 POST WebApi | 更新日期: 2023-09-27 18:35:27
我仍然只有几天的时间进入 ASP.NET 和WebAPI框架,所以我一定错过了一些非常简单的东西。
我有一个模型,它有几个属性和ID(作为一个属性,它有一个私人二传手,但这没有帮助)。
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; }
然后我有一个控制器方法帖子:
public HttpResponseMessage Post(MyModel model)
当我启动项目并转到自动生成的 API 文档时,我可以看到示例包含 ID 作为输入字段。我希望 API 忽略 ID 输入字段。我可以自己忽略它,但我不喜欢在我的代码中这种必须记住的不使用的东西。
一种选择是仅为输入创建一个单独的模型,但这意味着我必须维护两个类而不是一个。
是否有任何数据注释可以完全忽略此属性?
尝试:
[ScaffoldColumn(false)]
HTML 帮助程序将不再看到 ID 属性。但是,如果模型绑定程序在请求中看到匹配的值,则它可能仍会尝试将值移动到 ID 属性中。
因此,您可以使用 Exclude 来装饰它以避免绑定属性:
[Exclude]
public long ID { get; set; }
你也可以 ,(在你的 Post 函数内)从状态中删除属性:
ModelState.Remove("Id"); // Key removal
if (ModelState.IsValid)
{
}
}