迭代所有PostForm值Gin Gonic

时间:2016-10-11 16:50:18

标签: go go-gin

有没有一种简单的方法可以使用Gin Gonic列出/迭代所有帖子值? (GO)

我试过了:

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")

输出正常。

我要做的是将所有帖子值映射到gin.H {}上下文中,这样一旦失败,我可以将发布的值传递回.HTML模板上下文并将它们预填充(以及我的错误信息)。我发现最好的是手动将每个POST值连接到gin.H {}地图,但对于大型表格,这些似乎很冗长且不理想。

2 个答案:

答案 0 :(得分:2)

我们还需要类似@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提供的信息。

答案 1 :(得分:0)

这里的问题是表格(未显示)是一个多部分形式。 ParseForm不解析多部分表单,因此不解析数据。修复方法是调用ParseMultipartForm。感谢@phoet指向Gin Gonic for PostForm中的方法(为你调用ParseMultipartForm,并自动调用),这有助于我找到答案。