asp.net-mvc-routing – ASP.NET 4 MVC Web API:复杂路由的文档
web api似乎只适用于标准用例.
但我想做更复杂的路由,但找不到复杂路由的文档. 如果我有更多的控制器,路由变得越来越复杂. 我可以使用依赖项定义几个可选参数吗? /api/document/{par1}/{par2} par1& par2应该是可选的,但par2应仅在par1存在时匹配. 并且递归参数可能吗? /api/documents/characteristics/{round/green/red-dots} /api/documents/characteristics/{square/yellow} /api/documents/characteristics/{square/yellow/flat} /api/documents/characteristics/{square/yellow/flat/...} 是否有关于web api路由的详细文档?微软教程太基础了…… 我有两个控制器和一些麻烦,因为两个路由非常相似,所以采取了错误的路线.我可以使用[Action] -Attribute作为解决方法,但这感觉不对……我还必须考虑路由的顺序.这是合乎逻辑的,但未提及. 编辑: routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{mandant}/documents/{id}",defaults: new { controller = "documents",id = RouteParameter.Optional } ); //routes.MapHttpRoute( // name: "DefaultApiWithAction",// routeTemplate: "api/{mandant}/documents/{id}/{action}",// defaults: new { controller = "documents" } // ); 我有两种方法: [AcceptVerbs("get")] public HttpResponseMessage Get(int id) [ActionName("file")] [AcceptVerbs("get")] public HttpResponseMessage filedownload(int id) 现在我遇到了问题,即使我注释掉第二条路线也触发了文件操作,并且由于多个动作而没有触发正常的获取特定文档方法…我尝试了[NoAction]属性但这不起作用.. . 解决方法
您可以使用路由约束在global.asax中设置路由条件,如:
routes.MapRoute( "ApiRoute","api/document/{par1}/{par2}",new {controller="Document",action="SomeMethod"},new {par1 = @"d+" } ); 在最后一个参数中,您可以指定必须与要使用的路由的指定参数匹配的正则表达式.在上面的示例中,par1仅用于数字,但您可以使用任何正则表达式,例如: routes.MapRoute( "ApiRoute",new {par1 = @"(value1|value2|value3)" } ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 对MVC4 Web API性能问题进行故障诊断
- 母版页(Master Pages)
- asp.net – 元素’ToolkitScriptManager’不是已知元素
- asp.net-mvc – 使用WCF促进AJAX调用是否有优势?
- ASP.NET Core使用TopShelf部署Windows服务
- ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关
- asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名
- asp.net-mvc-2 – 在ASP.NET MVC 2中自定义ValidationSumma
- asp.net-mvc – 在MVC中没有持久化Cookie
- ASP.NET MVC:访问日志
- asp.net – 从代码后面添加文本框服务器控件?
- asp.net-mvc-3 – 实体框架与ADO.NET
- asp.net-mvc – 用于Bookmarked Angular SPA URL
- asp.net-mvc – .NET MVC不显眼的验证和自定义模
- 用HttpClientFactory来实现简单的熔断降级
- ASP.NET路由:令牌之间的字面子段和来自文字子段
- asp.net – 使用Elmah处理Web服务中的异常
- asp.net – 找不到可安装的ISAM. ‘/’应用程序中
- asp.net – 在Visual Studio中禁用浏览器链接选项
- asp.net-web-api – ASP.NET Web API自定义帮助页