asp.net-mvc-3 – 如何在MVC路由中组合CatchAll和EndsWith?
|
以下路由将匹配BasePath下面的任何文件夹结构: http://BasePath/{*SomeFolders}/
如何创建另一个匹配同一BasePath结构下的任何zip文件的路由? 我试过这个…… http://BasePath/{*SomeFolders}/{ZipFile}
……但它错了 包含多个节的路径段(例如文字节或参数)不能包含catch-all参数. 我该怎么做呢? *更新* 原来的要求实际上是有缺陷的. 实际上我相信我想要匹配的路线模式应该是: http://BasePath/{*SomeFolders}/{ZipFile}.zip
解决方法抓住URL中的任何位置 – 正是您所需要的我写过这样的Route类,它允许你完全按照你描述的那样做.它允许您将catch-all段作为路径定义中的第一个段(或实际上的任何其他段).它允许您将路线定义为: "BasePath/{*SomeFolders}/{ZipFile}"
整个过程在my blog post中有详细描述,您可以在这里找到此Route类的代码. 附加信息 基于添加的信息,我仍然宁愿使用不排除路径段参数之外的文件扩展名的第一个路由定义,而是为最后一个段添加约束 "[a-zA-Z0-9_]+.zip" 所以路由仍然应该如上所述在我的答案中定义,但ZipFile的约束应该如前所述定义.这将使我的特殊路线像现在一样开箱即用. 为了使其适用于其他路由分隔符(如示例中的点),代码应该进行相当大的更改,但如果您知道路由的工作方式非常好,则可以将其更改为以这种方式工作. 但我宁愿建议你保持简单并添加约束. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp-classic – 如何在VBScript中逐行读取CSV文件
- asp.net-mvc – 特定便携式区域的ControllerFactory
- asp.net – 要解决的JavaScript难题:window.confirm = div
- asp.net-mvc – ASP.NET MVC – RequireJS最佳的多页面应用
- 解决ASP.NET中的后台任务中的Autofac组件
- “记住我”与ASP.NET MVC认证不工作
- asp.net-mvc – 多个DbContext,多个Database.SetInitialize
- asp-classic – 经典ASP页面可以在Azure中运行吗?
- 可能在ASP.Net页面中引发404错误?
- asp.net-web-api – ASP.NET WebAPI OData – 继承自Entity
- asp.net-mvc – 为什么ASP.NET MVC在数据绑定期间
- ASP.NET表单身份验证 – 在调试时使用测试帐户自
- 调试w /附加到进程启动ASP.NET开发服务器
- 如何在asp.net核心中使用ViewDataDictionary和Ht
- 如何在ASP.NET中自定义发布?
- asp.net – 从Application_BeginRequest()中设置
- asp.net-web-api – Asp.net WebApi将UTC时间字符
- IIS – CPU使用率在几天内逐渐增加,直到100%
- 什么是最小的方式来缩小ASP.NET生成的Javascript
- asp.net-mvc – 抛出一个404像StackOverflow的,没
