2011-03-18 69 views
0

我遇到的問題涉及導航菜單中的重定向問題。我想動態創建一個navmenu。根據用戶的角色,我們可以看到所需的導航菜單項。 目前我使用:導航菜單不會重定向到給定的值

if (found) 
      { 
       if (admin == true) 
       { 
        NavigationMenu.Items.Add(new MenuItem("Agenda", "/AdminPages/Agenda.aspx")); 
        NavigationMenu.Items.Add(new MenuItem("Add Product", "/AdminPages/ProductToevoegen.aspx")); 
       } 
       else if (user == true) 
       {} 

這段代碼我已經把我的Site.master.cs,但我也有我的login.aspx.cs代碼控制,做了Response.Redirect("~/AdminPages/Agenda.aspx");某一頁視一旦登錄管理員或用戶。現在我遇到的問題是,當我登錄時,一部分工作,所以它控制角色並添加所需的導航菜單項。但是當我點擊添加產品鏈接時,它不會將我重定向到頁面。它使重定向我:

http://localhost:52853/AdminPages/Agenda.aspx 

在地址欄,它實際上顯示的網址遵循的#點擊時比重定向到議程上。

有關如何解決此問題的任何想法?我試圖找到一種方法將導航鏈接放在login.aspx.cs代碼中,但找不到引用NavigationMenu的正確方法,不知道是否可以取消任何幫助。先謝謝你。

回答

0

嗯可能不是正確的方式,但我修復它使site.master.aspx文件中的另一個菜單稱爲MenuAdmin爲例。比在後面的代碼我已經設置了

NavigationMenu.visible = false; 

MenuAdmin.visible = true; 

看起來工作得很好,做什麼需要現在做的;)

0

我會建議使用標準的siteMap對象和RoleProvider。並閱讀一些關於安全修整的內容(您可以在您的站點地圖節點上指定哪些角色可以訪問哪些站點)。

+0

是的,我可以做到這一點,但沒有辦法讓這項工作?:) – Dieter 2011-03-18 09:06:41

1

看看用於創建參數一個新的MenuItem。

當只傳遞2個參數時,您正在填充文本和值參數。你想傳遞的是一個navigateUrl參數。這僅在傳遞imageURL參數(可以爲空)時可用。

像下面這樣的東西應該可以解決你的問題。

NavigationMenu.Items.Add(new MenuItem("Agenda", "", "", "/AdminPages/Agenda.aspx")); 

希望這會有所幫助。