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.net – 正在生成无效的Webresource.axd参数
- 带有allowCustomSqlDatabase =“true”的ASP.NET SessionSt
- StructureMap和ASP .Net Web API和.Net Framework 4.5
- WCF休息 – 最佳做法是什么?
- 使用ASP.net和VB.net(或C#)从XML文件编辑和删除数据
- 为什么ASP.NET回发时请求cookie属性为null或不正确?
- asp.net-mvc – 程序集使用System.Web.Http 5.1,它比引用的
- asp.net-mvc – 用于MVC开发的Visual Studio 2010 Express吗
- AllowOnlyAlphanumericUserNames – 如何设置? (RC到RTM破
- asp.net-mvc – .input-validation-error为表单重新显示失败
- 使用ASP.NET成员资格提供程序的现成安全令牌服务
- asp.net-mvc – 用于ASP.NET MVC的Spark T4模板
- asp.net-mvc – 如何在Asp.Net MVC中做部分帖子?
- asp.net – 错误:找不到此项目类型所基于的应用
- asp.net – 远程连接到WebDev.WebServer.exe
- asp.net – ‘WebForm_DoPostBackWithOptions’在
- asp.net-mvc-3 – 如何让User.Identity在控制器外
- 数组 – 如何在经典asp中拆分字符串
- 经典Asp中的多行字符串
- asp.net-mvc-3 – DropDownListFor – 不选择“S