.NET MVC路由和Server.Transfer

时间:2014-09-29 20:58:20

标签: c# asp.net-mvc asp.net-mvc-routing

我在控制器处理中有一条路线:

/my-site-{x}

然而,它正在接替生活在网址上的一系列遗留资源:

/my-site-some_value.htm

所以我想我会写一个HttpModule,它会从旧的URL(以Server.Transfer结尾)到新的.htm(使用为MVC引入的无扩展URL和IIS7)。实际上,我使用HttpModule的原因是因为旧的资源是由HttpModule路由的,在路由是.NET的实际部分之前,所以我不想复制转移代码实际处理请求的所有单独的.aspx。

令我惊讶的是,我的代码遇到了错误,因为他们开始无法识别{x} url参数的值。检查后,我意识到,而不是

"some_value"

我看到了

"some_value.htm"

Server.Transfer之后。

TL; DR;路由字典接收url,但使用RawUrl属性在任何重写之前获取原始路径,而不是Server.Transfer承诺,即“重新启动.net处理管道,当前请求只是一个新的网址路径“。除了在我的MVC控制器中添加代码然后再次删除.htm之外,还有一种优雅的方法吗?

0 个答案:

没有答案