1

对于此解决方案,我需要在一行中使用 global.asax 中的正则表达式来实现 asp.net url 重写

www.dummydomain.com/a/1/b/2/c/3/d/4/...                    
www.dummydomain.com/b/2/c/3
www.dummydomain.com/b/2/a/1/c/3/

这意味着更改参数序列不应该影响 + 不同参数的数量将是动态的 + 我可以通过名称访问这些参数值,例如 a、b、c

4

2 回答 2

1

您可以通过 web.config 和编程方式配置 URL 重写规则。

看看下面的 MSDN 文章,它深入解释了它

http://msdn.microsoft.com/en-us/library/ms972974.aspx

简而言之,以编程方式从 global.asax.cs 中的 Application_BeginRequest() 调用 HttpContext.RewritePath(string path) 重写 URL

于 2012-10-07T14:13:18.910 回答
0

您可以对字符串使用 split 选项,然后将您的值放入字典中。这假设您的模式永远不会中断。

Dim MyContext = HttpContext.Current
Dim url = Request.Path.ToLower()
url = url.Trim("/")
Dim Vals = url.Split("/")
Dim Dict As New Dictionary(Of String, String)
for i = 0 to (vals.count/2)-1
     Dict.Add(vals(i),vals(i+1))
next

然后,您可以使用字典对象来定位您的变量。

在 Application_BeginRequest 方法中的 global.asax 文件中运行它并调用 MyContext.RewritePath 将用户发送到正确的路径。

if dict("a") = 1 then MyContext.RewritePath("new URL")
于 2012-10-07T14:05:35.340 回答