0

操作系统: Windows 7 Home Premium
编译器: Visual Studio 2012
语言: ASP.net C# 4
附加说明:使用Master带有脚本管理器的页面。Content页面有面板AJAX

在我的Global.asax中,我有一个路由这些地址的路由表:

//Site
routes.MapPageRoute("", "{address}", "~/{address}.aspx");   
routes.MapPageRoute("", "{address}/{resource}", "~/{address}/{resource}.aspx");

这允许我剪掉页面的 .aspx 部分,并使 URL 看起来更令人愉悦。

当我第一次运行我的站点时(重新启动编译 PC 后),所有AJAX面板都停止工作。任何自动完成扩展器、按钮、文本框等都会失去它们的AJAX能力。

我意识到这是问题所在,所以我编辑了上面的代码。正如预期的那样,该站​​点恢复了自身以解决该AJAX问题。

但是,在前面的解决方案之后,我没有编辑第一段代码,却发现我所有的AJAX面板仍然可以工作。所以,我真的必须注释掉代码,重新加载网站,然后取消注释页面的代码才能开始工作。

4

1 回答 1

0

您需要添加一个管理资源扩展的路由。

以下代码解决了我的问题:

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

public static void RegisterRoutes(RouteCollection routes)
{
    //Make sure to add this BEFORE any other routes.
    routes.Ignore("{resource}.axd/{*pathInfo}");

    //Site
    routes.MapPageRoute("", "{address}", "~/{address}.aspx");
    routes.MapPageRoute("", "{address}/{resource}", "~/{address}/{resource}.aspx");
}

感谢这篇文章

于 2012-09-21T06:59:38.240 回答