درود
یک پروزه mvc 5 در زمینه ساخت منو داینامیک دارم که کد های html اون موجود می باشد.
چگونه با دستور linq میتوانم این پروزه را به صورت پویا از پایگاه داده دریافت کنم .
فایل در ضمیمه موجو هست.
اگر هزینه ای هم داشته باشد اعلام کنید لطفا.
نیاز مبرم دارم به کامل سازی این منو به صورت پویا.
باتشکر از اساتید.
با سلام
من توسط این لینک تا حدودی یاد گرفتم اما مشکل اساسی برخوردم . . .
اما چطور میشه به منو ها لینک داد؟! من در دیتابیس یک ردیف جدید اضافه کردم با عنوان URL و از نوع استرینگ. در قسمت ویو نیز کد زیر را جایگزین کردم
href="@MenuItem.URL"
اما مشکل اینجاست که آدرس ها رو نادیده میگیره و فقط اولین زیر منو رو به تعداد زیر منو ها نشون میده
یعنی اگر یک منوی اصلی داریم به نام «راهکارها» و سه زیر منو تحت عنوان طراحی، برنامه نویسی ، امنیت داشته باشیم و هرکدوم از اینها هر تعداد که زیر منو داشته باشند مهم نیست ، به جای نام اون زیر منو ها فقط تایتل اولین زیر منو رو به جای همشون نشون میده!!!! لطفاً راهنمایی کنید
مرسی
کد اچ تی ام ال
<nav> <ul class="sf-menu"> @foreach (var MainMenu in Model.MenuList.Where(m => m.ParentId == 0).ToList()) { <li class="current" data-dropdown="dropdown"> <a href="@MainMenu.MenuURL" data-target="#">@MainMenu.Name</a> @foreach (var SubMenu in Model.MenuList.Where(m => m.ParentId == MainMenu.Id).ToList()) { <ul> <li> <a href="@MainMenu.MenuURL">@SubMenu.Name.ToString()</a> <ul> @foreach (var SubMenu2 in Model.MenuList.Where(m => m.ParentId == MainMenu.Id).ToList()) { <li> <a href="@MainMenu.MenuURL">@SubMenu.Name.ToString()</a> </li> } </ul> </li> </ul> } </li> } </ul> </nav>
به شکل زیر کدتون رو اصلاح کنید
<nav> <ul class="sf-menu"> @foreach (var MainMenu in Model.MenuList.Where(m => m.ParentId == 0).ToList()) { <li class="current" data-dropdown="dropdown"> <a href="@MainMenu.MenuURL" data-target="#">@MainMenu.Name</a> @foreach (var SubMenu in Model.MenuList.Where(m => m.ParentId == MainMenu.Id).ToList()) { <ul> <li> <a href="@MainMenu.MenuURL">@SubMenu.Name.ToString()</a> <ul> @foreach (var SubMenu2 in Model.MenuList.Where(m => m.ParentId == MainMenu.Id).ToList()) { <li> <a href="@SubMenu2.MenuURL">@SubMenu.Name.ToString()</a> </li> } </ul> </li> </ul> } </li> } </ul> </nav>
با سلام
خیر. این هم کاری نکرد.. البته من تغییری در کدها مشاهده نکردم!
در ForEach دوم شما نمونه اول را صدا زدید
@foreach (var SubMenu2 in Model.MenuList.Where(m => m.ParentId == MainMenu.Id).ToList()) { <li> <a href="@SubMenu2.MenuURL">@SubMenu.Name.ToString()</a> </li> }
باید از SubMenu2 استفاده کنید
این روش در منو های چند سطحی و با تعداد رکورد زیاد بسیار کند است؟؟؟؟؟؟؟
معمولا بعد ساختن برای مدتی Cache میکنیم
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)