如何在特定操作中隐藏模型属性?

How to hide model properties in specific operations?

我在使用 Swashbuckle 时遇到了一些问题。 我们有一个这样的模型 Student

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
    public StudentStatus Status { get; set; }
}

现在,在 PUT 操作中,一切正常,但在 POST 中,我想从必须发送到 API 的正文中删除 ID 和状态参数。

知道怎么做吗?

非常感谢解决此问题的人!

您应该有一个单独的模型 class 来准确表示允许客户端为这两个操作中的每一个发送的内容。因此,在这种情况下,两个单独的 classes,称为 StudentPostModel 和 StudentPutModel 之类的东西,并在每个中包含所需的字段。

除了在 Swagger 中使事情变得混乱之外,如果您尝试在不同的上下文中重复使用相同的模型(例如您正在概述),您也会让自己容易受到过度发布的攻击。