2016-10-11 6 views
0

Gin Gonicを使用してすべてのポスト値をリスト/反復する簡単な方法はありますか?私は文脈から直接値をテストしかしとき、すべてのPostForm値を繰り返しますGin Gonic

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 {}マップに配線することですが、大きなフォームの場合、これらは冗長で理想的ではないようです。

+0

'c.PostForm()'の実装を調べると、 'PostForm'が解析されていないと仮定して、値が含まれていない可能性があります。https://github.com/gin-gonic/gin/blob/develop/context.go#L264-L276 – phoet

+0

@phoet - そのようなものですが、ParseForm()が解析するべきではありませんか?修正は何ですか?代わりに 'ParseMultipartForm'を呼び出す必要がありますか? – BadPirate

答えて

0

ここでの問題は、フォーム(図示せず)がマルチパート形式だったことです。 ParseFormは、マルチパートフォームを解析しないため、データは解析されません。修正の代わりにParseMultipartFormを呼び出すことです。 PostFormのGin Gonicのメソッドを指している@phoet(あなたのためにParseMultipartFormが呼び出され、自動的にそうする)のおかげで、私は答えにつながりました。

関連する問題