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 关注
- 298 浏览
添加回答
举报