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 输入字段。我可以自己忽略它,但我不喜欢在我的代码中这种必须记住的不使用的东西。

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

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

WebApi POST 不包括 ID 字段

尝试:

[ScaffoldColumn(false)]

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

因此,您可以使用 Exclude 来装饰它以避免绑定属性:

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

你也可以 ,(在你的 Post 函数内)从状态中删除属性:

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