asp.net-mvc – Asp.Net MVC路由 – 如何匹配整个URL?
发布时间:2020-12-16 03:32:27 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试创建一个全能路由来跟踪联盟字符串何时在URL中.联盟代码由x后跟一个int标记,并且只出现在URL的末尾(但在查询字符串之前). 我的想法是,我将提取联盟会员ID,进行一些日志记录,然后在没有联盟会员ID的情况下对同一请求执行301. 例如: http://www.dom
我正在尝试创建一个全能路由来跟踪联盟字符串何时在URL中.联盟代码由x后跟一个int标记,并且只出现在URL的末尾(但在查询字符串之前).
我的想法是,我将提取联盟会员ID,进行一些日志记录,然后在没有联盟会员ID的情况下对同一请求执行301. 例如: http://www.domain.com/x32 http://www.domain.com/x32/ http://www.domain.com/path/to/something/x32 http://www.domain.com/x32?query=string http://www.domain.com/x32/?query=string http://www.domain.com/path/to/something/x32?query=string http://www.domain.com/path/to/something/x32/?query=string 我有这条路 routes.Add(new Route("{url}/x{affiliateExternalId}",new MvcRouteHandler()) { Defaults = new RouteValueDictionary( new { controller = "Home",action = "LogCookieAndRedirect" } ),Constraints = new RouteValueDictionary(new { affiliateExternalId = @"d{1,6}" }) }); 哪个只匹配 http://www.domain.com/path/x32 http://www.domain.com/path/x32/ 我需要做什么来匹配所有内容并将查询字符串传递给控制器???我怀疑我应该使用*运算符,但我不能让它做我需要的. 解决方法
{* url}将匹配整个路径,而不仅仅是一个段.但是,由于它匹配整个路径,因此您无法在最后匹配联属会员ID.该路线将匹配每个请求.您可以通过添加路由约束来检查该URL是否在末尾具有联盟ID:
routes.MapRoute( "WithAffiliate","{*url}",new { controller="Home",action="LogCookieAndRedirect" },new { url = @"/x[0-9]+$" } ); 然后,您的操作需要从url参数本身解析会员ID.如果您可以选择修改URL结构,则可以匹配ID,如果它位于路径的开头: routes.MapRoute( "WithAffiliate","x{affiliateExternalId}/{*url}",action="LogCookieAndRedirect" } ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-web-api – 在WebApi2帮助页面中启用文档
- asp.net-mvc – 从数据库显示剃须刀
- asp.net-web-api – 更好地总是在Web Api中返回HttpRespons
- asp.net – 从承载令牌(Web API)获取自定义声明值
- asp.net – 格式化DataBinder.Eval数据
- asp.net-web-api – Web API中的多态:单端点可能?
- asp.net cookie,身份验证和会话超时
- 你如何获得asp.net控件的自动生成的name属性?
- asp.net-mvc – 如何在路由上处理null {id}?
- asp.net – 如何从会员提供商获取用户/个人资料列表?
推荐文章
站长推荐
- asp.net-mvc – 如何在asp.net mvc中使用SOAP
- asp.net-mvc – asp.net MVC Url.Content()CDN重
- asp.net – 带有MVC 2的自定义ViewModel强类型HT
- SOAP系列目录
- 计算ASP.net/c#中的会话数
- .net – DNU发布 – 来自MSBuild的no-source
- asp.net – 如何检查IIS是否在32位或64位模式
- templates – CheckBoxList多个选择:如何建模绑
- asp.net-mvc-3 – 关于Razor中嵌套代码块声明的问
- 使用OneLogin和DotNetOpenAuth的ASP.Net单点登录
热点阅读