Click here to Skip to main content
15,895,011 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hey all,

i have a "System.ArgumentOutOfRangeException: Index must be within the bounds of the List." exception. I want to create a menu in the Site.Master, which can set an extra Item when a special user is loged in.

Site.Master:

ASP.NET
<div class="menu">
    <asp:Menu ID="Menu1" runat="server"
     EnableViewState="false"  
     Orientation="Horizontal" >
    
</div>


Site.Master.cs:

C#
protected void Page_Load(object sender, EventArgs e)
{
       String User = Context.User.Identity.Name.Split(new Char[] { '\\' })[1];
       MenuItem item = new MenuItem();
       item.Text = "Configure";
       item.NavigateUrl = "~/Default.aspx";
       Menu1.Items.Add(item);
       if (User.Equals(user1) | User.Equals(user2))
       {
           item.Text = "Appstore";
           item.NavigateUrl = "~/AppStore.aspx";
           Menu1.Items.Add(item);
       }
       item.Text = "About";
       item.NavigateUrl = "~/About.aspx";
       Menu1.Items.Add(item);
}


Can someone tell me what´s wrong?
Posted

1 solution

You have to create new item object instead of reusing it.

Try this :



C#
protected void Page_Load(object sender, EventArgs e)
{
       String User = Context.User.Identity.Name.Split(new Char[] { '\\' })[1];
       MenuItem item = new MenuItem();
       item.Text = "Configure";
       item.NavigateUrl = "~/Default.aspx";
       Menu1.Items.Add(item);
       if (User.Equals(user1) | User.Equals(user2))
       {
           item = new MenuItem();
           item.Text = "Appstore";
           item.NavigateUrl = "~/AppStore.aspx";
           Menu1.Items.Add(item);
       }
       item = new MenuItem();
       item.Text = "About";
       item.NavigateUrl = "~/About.aspx";
       Menu1.Items.Add(item);
}
 
Share this answer
 
Comments
kuti, ger 24-Oct-11 8:06am    
ok, this was easy ;)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900