0

OS: 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 に答える