2012-04-05 71 views
0

我想重定向客戶從一個頁面到它的第一個來自.NET usercontrol的兄弟姐妹。這是我的代碼,但我得到異常「$ currentPage /之前的兄弟姐妹:: * [@isDoc] [1] 有一個無效的令牌。」Response.Redirect到下一個兄弟姐妹與umbraco.NodeFactory GetNodeByXpath從.net Usercontrol

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

當然當前頁是沒有定義的參數在.net用戶控件,我想過取出,所以,我寫了這個

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

我想更多的辦法,沒有什麼工作。我無法弄清楚我的代碼有什麼問題,有什麼想法!有沒有其他方法可以做到這一點。請注意,我必須從.net usercontrol而不是xslt中執行此操作。感謝advace

回答

1

我認爲你可以這樣做,我不知道它是否正確的方法。

把根節點的子節點保存在一個整數列表中。然後您可以從列表中找到當前節點的前一個節點。

+0

我想到了這種方法,但我確信有一個更快更直接的方法。我會等一會兒,看看我們能否有更多的想法。 – 2012-04-05 09:49:40

+0

@ m.othman:是的,請在umbraco論壇上發帖,也會有更多人看到.. – 2012-04-05 10:21:03

+1

Umbraco論壇上的解決方案 [http://our.umbraco.org/forum/developers/api-questions/30562-ResponseRedirect到下一個同胞與 - umbracoNodeFactory-GetNodeByXpath-從網先行-用戶控件?p = 0時#comment113443] – 2012-04-05 12:56:43