嗨即时试图解决这个问题,我获取数据并创建菜单:现在数据库从数据库驱动的嵌套菜单在ASP.Net LINQ
if (Context.User.IsInRole("Admin") == true)
{
mnMenu.Items.Clear();
List<menuRole> menuParentList = new List<menuRole>();
List<MenuItem> menuItemList = new List<MenuItem>();
List<MenuItem> hoverItem = new List<MenuItem>();
int parentPosition = 0;
string menuName;
menuParentList = roles.getMenuItems().ToList();
for (int i = 0; i < menuParentList.Count; i++)
{
if (menuParentList[i].menuType == "Admin")
{
if (menuParentList[i].MenuRole1 == "parent")
{
menuName = menuParentList[i].menuName.ToString();
menuItemList[i].Text = menuName;
parentPosition = i;
}
else if (menuParentList[i].MenuRole1 == "child")
{
hoverItem[i].Text = menuParentList[i].menuName;
hoverItem[i].NavigateUrl = menuParentList[i].MenuLink;
menuItemList[i].ChildItems.Add(hoverItem[i]);
}
}
}
mnMenu.Items.Add(menuItemList[0]);
mnMenu.Items.Add(menuItemList[1]);
mnMenu.Items.Add(menuItemList[2]);
}
它给我这个异常的时刻:
System.ArgumentOutOfRangeException was unhandled by user code
Message=Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Source=mscorlib
ParamName=index
StackTrace:
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at PresentationLayer.UserControls.Menu.Page_Load(Object sender, EventArgs e) in C:\Users\Kurt\documents\visual studio 2010\Projects\aaa\PresentationLayer\UserControls\Menu.ascx.cs:line 44
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
你能指出44行? – 2011-12-31 11:53:59
menuItemList [i] .Text = menuName;这会添加父标题的名称。 – Mazda 2011-12-31 11:57:46