0

あるページから .NET ユーザー コントロールの最初の前の兄弟に顧客をリダイレクトしたいと考えています。これは私のコードですが、「$currentPage/preceding-siblings::* [@isDoc][1] has an invalid token .」という例外が発生します。

Node sibling = Node.GetNodeByXpath(@"$currentPage/preceding-siblings::* [@isDoc][1]");
if (sibling != null)
    Response.Redirect(umbraco.library.NiceUrl(sibling.Id));

もちろん currentPage は .net usercontrol で定義されたパラメーターではないので、削除することを考えたので、これを書きました

Node sibling = Node.GetNodeByXpath(@"/preceding-siblings::* [@isDoc][1]");
if (sibling != null)
    Response.Redirect(umbraco.library.NiceUrl(sibling.Id));

私はより多くの方法を試しましたが、何もうまくいきません。コードの何が問題なのか、アイデアがわかりません! それを行う他の方法はありますか。xsltではなく.netユーザーコントロール内から実行する必要があることに注意してください。よろしくお願いします

4

1 に答える 1

1

このようにできると思いますが、正しい方法かどうかはわかりません。

ルート ノードの子を取得し、それらの ID を整数リストに保存します。次に、リストから現在のノードの前のノードを見つけることができます。

于 2012-04-05T09:27:55.427 に答える