2 回答

TA貢獻1829條經驗 獲得超9個贊
沒有標準/內置方法可以從模板中獲取任何請求參數,您必須將其放入數據中。(您可以編寫一個為您執行此操作的函數,但這會導致丑陋的 hack。)
我不明白你的解決方案有什么問題。

TA貢獻1780條經驗 獲得超4個贊
我采取類似的方法,但使用結構。
type SignupForm struct {
Name string
Email string
Etcera bool
}
// Type alias
type M map[string]interface{}
...
// In the handler that accepts your form
err := r.ParseForm()
if err != nil {
// handle error
}
signup := SignupForm{}
err := decoder.Decode(signup, r.PostForm)
if err != nil {
// handle error
}
// Store the 'saved' form contents somewhere temporary -
// e.g.
// - cookies (keep in mind the 4K browser limit)
// - server side sessions (Redis; how I do it)
// - db
// In the handler that renders your form
err := template.ExecuteTemplate(w, "form.html", M{
"form": signup,
"csrfToken": csrfToken,
// and so on...
})
請注意,無論您在何處存儲表單數據,都要確保它是臨時的。服務器端會話是理想的,因為您可以讓它們過期(如果您不想手動刪除它們)。
- 2 回答
- 0 關注
- 329 瀏覽
添加回答
舉報