Privacy前面不能带公司介绍
时间: 2023-10-02 21:11:05 浏览: 29
如果你希望不修改第一个路由的 URL,而仍然能够让 "Privacy" 请求映射到 "~/about/about.aspx" 页面,并且传递的参数为 Channel="Privacy",可以通过以下两种方式实现:
1. 修改第二个路由的 URL 规则为 "Privacy",并将第二个路由的优先级降低,如下所示:
```csharp
RouteTable.Routes.MapPageRoute("about", "公司介绍/{Channel}", "~/about/about.aspx", false);
RouteTable.Routes.MapPageRoute("privacy", "Privacy", "~/about/about.aspx", false, new RouteValueDictionary { { "Channel", "Privacy" } });
```
这样就可以让 "Privacy" 请求映射到 "~/about/about.aspx" 页面,并且传递的参数为 Channel="Privacy"。注意,需要将第二个路由的优先级降低,否则会优先匹配第二个路由,而不会匹配第一个路由。
2. 在页面代码中判断请求的 URL 是否为 "Privacy",如果是,则手动将参数设置为 Channel="Privacy",如下所示:
```csharp
protected void Page_Load(object sender, EventArgs e)
{
string channel = Page.RouteData.Values["Channel"] as string;
if (string.IsNullOrEmpty(channel) && Request.Url.PathAndQuery.EndsWith("Privacy"))
{
Page.RouteData.Values["Channel"] = "Privacy";
}
}
```
这样就可以让 "Privacy" 请求映射到 "~/about/about.aspx" 页面,并且传递的参数为 Channel="Privacy"。注意,需要在页面代码中手动判断和设置参数,不够优雅。