我有这样的城市页面: mysite.com/ city -london.aspx。很容易找到像mysite.com/city/london这样的路线。但是我必须使用城市-london.aspx来支持旧的URL
我是怎么走这条路的?下面的代码对我不起作用:-我只想用RegisterRoutes写东西
routes.MapRoute(
"City",
"city-{id}.aspx",
new { controller = "Home", action = "City", id = UrlParameter.Optional }
);更新
下面的代码是为我工作,但我不想这样编码。
protected void Application_BeginRequest(object sender, EventArgs e)
{
var m = Regex.Match( Request.Url.AbsolutePath, @"/city-(.+?)\.aspx" );
if (m.Success)
{
var path = "/?id=" + m.Groups[1].Value;
Context.RewritePath(path, true);
}
}发布于 2013-12-27 17:39:11
将此代码置于默认路由之前,
routes.MapRoute(
name: "City",
url: "{pge}",
defaults: new { controller = "Home", action = "City" },
constraints: new { pge = @"^city-[a-z]{1,10}.aspx$" }
);发布于 2013-12-27 05:47:59
*.aspx是IIS已知的扩展,因此将以不同的方式处理它。如果您删除了路由定义中的.aspx,然后浏览到mysite.com/city-london,它应该就能工作了。如果没有,请张贴错误如果有任何。
https://stackoverflow.com/questions/20795432
复制相似问题