![QQ图片20170904172846.png](https://static.studygolang.com/170904/fff500489d14066b99f06acde6cd88e8.png)
按理说 用r.method =="get" 的时候 表单传过来才会触发他,然后返回值,
否则非表单的时候 显示 HTML
```go
package main
import (
"html/template"
"net/http"
)
type ContactDetails struct {
Email string
Subject string
Message string
}
func main() {
tmpl := template.Must(template.ParseFiles("forms.html"))
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
tmpl.Execute(w, nil)
return
}
details := ContactDetails{
Email: r.FormValue("email"),
Subject: r.FormValue("subject"),
Message: r.FormValue("message"),
}
_ = details
tmpl.Execute(w, struct{Success bool}{true})
})
http.ListenAndServe(":8080", nil)
}
```
我觉得你可以参考一下这个~~~
#4
更多评论
<a href="/user/channel" title="@channel">@channel</a> 应该怎么解决呢
我在.net中 一般用于 if (HttpContext.Current.Request.HttpMethod == "POST") 这个来检测是否POST还是什么 如果非POST就得到模板
因为我习惯把 获取模板和POST GET等放在一个函数中, 所以需要判断检测POST GET 否则获取模板
#2