【问题标题】:ASP.NET Routing in Global.asaxGlobal.asax 中的 ASP.NET 路由
【发布时间】:2012-07-27 03:10:07
【问题描述】:

我正在尝试按照以下步骤在我的 Web 表单应用程序中添加路由:

http://msdn.microsoft.com/en-us/library/cc668201.aspx#adding_routes_to_a_web_forms_application

我在 Global.asax 文件中添加了这样的路由:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("", "/WebsiteName/{combinedPin}", "~/Default.aspx");
}

然后我尝试像这样在本地访问我的网站:

http://localhost:12345/WebsiteName/test36u

但是我收到了一条找不到资源的消息,所以我认为我的路线不正确。有人能看出我的代码有问题吗?

任何指针将不胜感激。

谢谢

【问题讨论】:

    标签: asp.net routing webforms


    【解决方案1】:

    您不需要在路由中指定您的网站名称,请尝试使用以下代码:

    routes.MapPageRoute("", "{combinedPin}", "~/Default.aspx");
    

    使用上面的代码,您的链接将如下所示:

    http://localhost:12345/WebsiteName/test36u
    

    如果您的意图是让您的用户使用名为:WebsiteName 的细分访问您的网站,则使用:

    routes.MapPageRoute("", "WebsiteName/{combinedPin}", "~/Default.aspx");
    

    但在前面的代码中,您的用户必须按如下方式访问您的资源:(虽然可能不是预期的结果)

    http://localhost:12345/WebsiteName/WebsiteName/test36u
    

    【讨论】:

    • 感谢朱保尔。我还能访问 Request.QueryString["combinedPin"] 吗?我希望能够检查它是否存在以进行错误处理...
    • 忽略我,我发现我可以这样处理:Page.RouteData.Values["combinedPin"]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 2011-01-10
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多