【发布时间】:2012-07-11 11:46:37
【问题描述】:
我正在使用 ASP.Net Web API 开发应用程序并配置应用程序路由,我遵循this 方法。但在我的应用程序中,我想要的网址如下。 "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 控制器中。
【问题讨论】:
标签: asp.net asp.net-web-api asp.net-routing