我正在使用 ASP.Net Web API 开发应用程序并配置应用程序路由,我正在遵循这种方法。但在我的应用程序中,我想要的网址如下。“http://localhost/MY/api/user/AllGridData/false/1342006446883/10/1/Id/desc”
我在浏览器窗口中手动输入了这个 url,AllGridData 方法被触发了。但是当我从应用程序访问它时,它会尝试访问如下所示的 url。“http://localhost/MY/api/user/AllGridData?_search=false&nd=1342006446883&rows=10&page=1&sidx=Id&sord=desc”
因此,由于以下异常,不会触发 AllGridData 方法。加载资源失败:服务器响应状态为 400(错误请求)“http://localhost/MY/api/user/AllGridData?_search=false&nd=1342006446883&rows=10&page=1&sidx=Id&sord=desc”
我在 RouterConfig.cs 中对这个 url 的路由是这样的。
routes.MapHttpRoute(
name: "LoadGridApi",
routeTemplate: "api/{controller}/{action}/{_search}/{nd}/{rows}/{page}/{sidx}/{sord}",
defaults: new { _search = UrlParameter.Optional, nd = UrlParameter.Optional, rows = UrlParameter.Optional, page = UrlParameter.Optional, sidx = UrlParameter.Optional, sord = UrlParameter.Optional }
);
希望你能理解问题。最终我想要的是获得如下所示的 URL,然后触发 AllGridData 方法。“http://localhost/MY/api/user/AllGridData/false/1342006446883/10/1/Id/desc”
我究竟做错了什么?是不是因为路由代码错误?
我的 AllGridData 方法在 WebAPI 控制器中,而不是在 MVC 控制器中。