遍历所有 PostForm 值 Gin Gonic

Iterate through all PostForm values Gin Gonic

是否有使用 Gin Gonic 列出/遍历所有 post 值的简单方法? (去)

我试过:

c.Request.ParseForm()
for key, value := range c.Request.PostForm {
    log.Printf("POST %v = %v",key,value)
}

但这没有显示任何值,但是当我直接从上下文中测试这些值时:

log.Printf("POST email = %v", c.PostForm("email")

输出正常。

我想做的是将所有 post 值映射到 gin.H{} 上下文中,以便在失败时我可以将 posted 值传递回.HTML 模板上下文并预先填充它们(以及我的错误消息)。我发现的最好的方法是手动将每个 POST 值连接到 gin.H{} 映射,但对于大型表格来说,这些似乎冗长且不理想。

这里的问题是表单(未显示)是一个多部分表单。 ParseForm 不解析多部分表单,因此没有数据。解决方法是改为调用 ParseMultipartForm。感谢@phoet 指出 Gin Gonic for PostForm 中的方法(它为您调用 ParseMultipartForm,并自动调用),这帮助我找到了答案。

我们还需要类似@BadPirate 描述的东西,所以如果有人需要杜松子酒 1.6.2

func register(c *gin.Context){
    c.MultipartForm()
    for key, value := range c.Request.PostForm {
        log.Printf("%v = %v \n",key,value)
    }
}

感谢@BadPirate 和@phoet 提供的信息。