0

我想在页面启动时将 Default.aspx 路由到另一个 URL。
我的 global.asax 是这样的:

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute(
        "Default",                                                          // Route name
        "My Site",                                                          // URL with parameters
        "~/Default.aspx"                                                    // Parameter defaults
    );
}

我应该为我的目的编写一个处理程序吗?
(我找到了一些 .net 3.5 和 MVC 的示例,但是 .net 4 Web 表单呢)
如果是,我该怎么写?

编辑:
这条线到底是做什么的?

    routes.Add("Default", new Route(string.Empty, new RouteHandler("~/Default.aspx")));

我正在使用 Web 表单 -> 不是 MVC

提前感谢

4

1 回答 1

0

下面是一个如何处理asp.net 4.0 web表单上的路由的具体示例(它就在mvc部分下面)。

http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series。 aspx

你接近它的方式很好。您的路线的第二个参数确实有错误。好吧,也许不是错误,我不喜欢 url 中的空格,因为它们实际上是编码的空格。查看指南。

刚刚注意到您的编辑。添加路由本质上会在 url 或 url 模式(你有作为 string.Empty 这是一个问题)和服务请求的处理程序之间创建一个映射(你指定 RouteHandler ,我认为它实际上不存在?)。.net 提供了一个 PageRouteHandler,它允许您指定哪个页面响应您的请求并处理其他一些细节,例如在您的站点物理结构上定义的安全性。在内部,MapPageRoute 只是调用 routes.Add 但使用 PageRouteHandler。

于 2012-07-02T20:52:09.283 回答