赞
踩
可以通过两种方式,最方便的是用 bind 方法,提前定义好 struct,然后匹配到对应的 post/get 数据。
比如我有一个 user 数据需要获取,后面的form:"Id"
等对应的是前端发送给服务器里的数据属性名
type UserForm struct { Id int `form:"Id"` IsPublic int `form:"IsPublic"` Name string `form:"Name"` Phone string `form:"Phone"` Message string `form:"Message"` Plate string `form:"Plate"` Password string `form:"Password"` WxQr string `form:"WxQr"` Desc string `form:"Desc"` Homepage string `form:"Homepage"` GaodeInvitation string `form:"GaodeInvitation"` DateEdit string `form:"DateEdit"` DateRegister string `form:"DateRegister"` Hash string `form:"Hash"` VisitCount int `form:"VisitCount"` }
前端发送的数据应该是这样的:
{
Id: 1,
Name: "Tina",
IsPublic: 1,
Phone: "1238357231",
...
}
router.POST("/user/edit", func(ctx *gin.Context) {
var user UserForm
if err := ctx.ShouldBind(&user); err != nil {
// 处理错误请求
return
}
// 这里已经将 Post 数据绑定到 user 中了
}
还有一种方式是直接从 Post 数据中单独取得某个属性的值
数据还是以上面的方式传送到服务器
router.POST("/user/edit", func(ctx *gin.Context) {
name := ctx.PostForm("Name")
}
这样你就能直接获取其中的某个值。
另外还有 PostFormMap
PostFormArray
可用,对应数组和对象
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。