【问题标题】:How to display body as html forms using Swagger in ASP.NET Core如何在 ASP.NET Core 中使用 Swagger 将正文显示为 html 表单
【发布时间】:2021-01-17 07:35:07
【问题描述】:

在 Swagger 中,是否可以将正文表示为 HTML 表单而不是 JSON 字符串?以及如何实现这一目标?

例如,在 django 中,我可以通过 html 表单输入 JSON(是的,这是一个简单的示例,但是更复杂的对象可能会有点烦人来编写 JSON,尤其是在字段是外键并且您不记得的情况下该表中的条目)。

在 Swagger 中,我的 UI 看起来像,理想情况下,Id 也不是必需的输入,因为它是自动生成的。

在请求正文下拉框中,我只有这些选择。

非常感谢任何帮助。

【问题讨论】:

  • 如果您展示您的控制器会有所帮助。如果您希望您的控制器端点参数是表单字段,那么您应该使用[FromForm] 参数属性。例如:public IActionResult MyFormEndpoint([FromForm] MyFormObject formObject){...}
  • 谢谢安迪,我刚刚拿到了自动构建的控制器,从记忆中他们没有包含这个注释,我会试一试
  • 嘿@Andy,你知道如何从swagger表单中排除属性,即如果我有并且类型有一个外键“ProjectID”和一个仅由GET请求使用的属性Project,为了允许我传回 Project 对象,我将如何将 Project 排除在 POST 请求中?
  • 看起来很复杂:stackoverflow.com/questions/41005730/… 我会考虑创建一个 DTO 模型并将其映射到实际模型。

标签: asp.net asp.net-web-api swagger swagger-ui


【解决方案1】:

正如安迪在 cmets 中正确指出的那样,答案是将 [FromForm] 注释添加到端点函数的参数中

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2019-12-05
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多