操作系统: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
面板仍然有效。因此,我必须注释掉代码,重新加载网站,然后取消注释页面的代码才能开始工作。
答案 0 :(得分: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");
}
感谢This post。