論理的な観点から、ユーザーエクスペリエンスを向上させるために、リダイレクト間で部分的なフォームデータを保持しようとしています。これにより、ユーザーは無効な部分だけをフォーム全体に再度入力する必要がなくなります。
プログラミングの観点から、request.PostForm データ構造をゴリラ セッションのフラッシュに保存しようとしています。リダイレクト後に取得できる唯一のものは、この [0xc2001c8b10] のようなメモリ アドレスの文字列表現です。
これは、検証エラーの後にフラッシュ データを保存する部分です (この前に request.ParseForm() が実行されました)。
session, _ := store.Get(request, "test")
session.AddFlash(err.Error(), "messages")
session.AddFlash(request.PostForm, "form_data")
session.Save(request, response)
http.Redirect(response, request, "/", http.StatusFound)
return
また、ゴブで構造を効果なしで登録しようとしました:
func init() {
gob.Register(&url.Values{})
}
フォームの値は小文字です。「first_name」、「last_name」がこの動作に影響を与える可能性がある場合。
リダイレクト後に「メッセージ」を正常に取得できたことに注意してください。唯一の問題は構造データにあります。
私は何か間違ったことをしていますか、それとも私が気付いていないリダイレクト後に部分的なフォームを埋めるための別のアプローチがありますか?