1

私のサイトには多くのルートがあります。ユーザーは自由にページを追加または削除できるため、時々ルートを再登録する方法が必要です

再登録時に、ルート キャッシュ全体 ("RouteTable.Routes.Clear") をクリアしたくありませんが、ルートごとにテーブル ルートを調べ、その名前に特定の正規表現を使用して、それを削除するかどうかを決定します。 .

その後、必要な特定のページを再登録します

その間、私のコードはこちら

        For Each r In RouteTable.Routes
            If CType(r, Route).DataTokens("ConfigID") = ConfigID Then RouteTable.Routes.Remove(r)
        Next

最初の削除後、「コレクションが変更されました。列挙操作が実行されない可能性があります」というエラーがスローされます。

ご助力ありがとうございます!!

4

1 に答える 1

2

名前はルートのプロパティではないため、ルートのルート名を取得することはできません。RouteTable にルートを追加する場合、名前はルートの内部インデックスとして使用され、公開されることはありません。

これを行う方法は 1 つあります。

  1. ルートを登録するときは、ルート名でルートに DataToken を設定し、それを使用してルートをフィルタリングします。

#1 を行う最も簡単な方法は、おそらくルートをマッピングするための独自の拡張メソッドを作成することです。

于 2010-10-23T03:09:03.490 に答える