2011-07-26 95 views
2

我已经成功地在Asp.Net 4.0 webforms中设置路由。我已经设置:Asp.Net 4.0中的路由

routeCollection.MapPageRoute("Default Page", "Default/{ProductName}/{CategoryName}", "~/Default.aspx"); 

但是,问题是,即使用户浏览到default.aspx,页面仍然显示出来。我怎样才能避免这种情况?我只想要MapPageRoute工作。我希望当用户浏览到default.aspx时应该抛出一些错误或应该显示404页面等等。总之,我不会让用户浏览default.aspx。我怎样才能做到这一点?

感谢提前:)

回答

3

您可以通过两种方式处理此问题。

  1. 在Request_Start情况检查的Global.asax,如果通过的.aspx请求的URL结束重定向到错误页面。

  2. 使用Url重写器,通过正则表达式识别错误的请求并将其重定向到自定义错误页面。

enter image description here

+0

通过Urlrewriter你的意思是'http:// urlrewriter.net /'?我对这方面的经验有限。但如果这个链接是正确的,我可以自己开始研究它。 – Jaggu

+0

如果您使用IIS7 +,则可以使用URL重写模块。 http://www.iis.net/download/urlrewrite – Phill

+0

你可以查看http://www.iis.net/download/urlrewrite。您可以通过IIS7或Web配置创建规则。你需要样品吗? – Peyman

-1

从未使用的WebForms自己的路由,但你有没有试过看Request.Url?如果以/包含结尾,则可以通过重定向到错误页面来处理此问题。

+0

我知道这种做法,但不存在这样做的任何声明,并更好的办法? – Jaggu

+0

Peyman的Url重写方法在我看来是一种可行的选择。 – Sascha