GoLang:通过url将值从view层(.tpl)传递到controller层
beego框架
1.定义路由:
beego.Router("/UpdateState/:statename/:id", &controllers.ContentController{}, "*:UpdateState")
2.tpl中的url实现
相对应的tpl文件中的url可以为
<a href="/UpdateState/FbState/{{.ID}}">{{.FbState}}</a>
其中,通过Url传递到controller中的变量有:
statename,id ,对应的值分别为 "FbState",和通过{{.ID}}取得的值,例如为"3"
3.controller处理:
func (c *ContentController) UpdateState() {
statename := c.Ctx.Input.Params[":statename"]
idint := c.Ctx.Input.Param(":id")
id, _ := strconv.ParseInt(idint, 0, 64)
fmt.Println(statename, id)
success := models.UpdateState(id, statename)
if success {
fmt.Println("updatesuccess")
} else {
fmt.Println("updatefail")
}
c.Get()
}
通过上述方法,取得statename和id,并可以调用model层中的方法。