diff --git a/router.go b/router.go index 9129ddc5..561db4e2 100644 --- a/router.go +++ b/router.go @@ -227,6 +227,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) } requestPath := r.URL.Path + r.ParseMultipartForm() //user defined Handler for pattern, c := range p.userHandlers { @@ -350,18 +351,18 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request) if r.Method == "GET" { method = vc.MethodByName("Get") method.Call(in) - } else if r.Method == "POST" { - method = vc.MethodByName("Post") - method.Call(in) } else if r.Method == "HEAD" { method = vc.MethodByName("Head") method.Call(in) - } else if r.Method == "DELETE" { + } else if r.Method == "DELETE" || (r.Method == "POST" && r.Form.Get("_method") == "delete") { method = vc.MethodByName("Delete") method.Call(in) - } else if r.Method == "PUT" { + } else if r.Method == "PUT" || (r.Method == "POST" && r.Form.Get("_method") == "put") { method = vc.MethodByName("Put") method.Call(in) + } else if r.Method == "POST" { + method = vc.MethodByName("Post") + method.Call(in) } else if r.Method == "PATCH" { method = vc.MethodByName("Patch") method.Call(in)