Razor Page 的 handler 預設只能從 URL 的 QueryString 參數 ?handler=XXXX 決定要去的 handler,這有點不方便,因為我會用 <button type="submit" name="handler" value="Delete">
的方式去傳送 handler,所以需要用 POST 也能決定 handler。
為了做到這點可以在 Startup.cs 進行 middleware 配置:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { //... /* 使用 FormData 給路由 handler */ app.Use((context, next) => { HttpRequest req = context.Request; /* 判斷是否為 POST,且具有 handler 參數,然後覆蓋 Route 的值 */ if (req.HasFormContentType && req.Form.ContainsKey("handler")) { req.RouteValues["handler"] = req.Form["handler"]; } return next(); }); //... }
0 回應:
張貼留言