مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sange_sabur

عضویت از 1394/01/11

ساخت منو تو در تو داینامیک با mvc 5

  • چهارشنبه 26 اسفند 1394
  • 14:50
تشکر میکنم

درود

یک پروزه mvc 5  در زمینه ساخت منو داینامیک دارم که کد های html اون موجود می باشد.

چگونه با دستور linq میتوانم این پروزه را به صورت پویا از پایگاه داده دریافت کنم .

فایل در ضمیمه موجو هست.

اگر هزینه ای هم داشته باشد اعلام کنید لطفا.

نیاز مبرم دارم به کامل سازی این منو به صورت پویا.

باتشکر از اساتید.

 

ضمیمه

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

مرتضی پورمحمد

عضویت از 1393/12/23

  • یکشنبه 8 فروردین 1395
  • 15:04

با سلام
من توسط این لینک تا حدودی یاد گرفتم اما مشکل اساسی برخوردم . . . 
اما چطور میشه به منو ها لینک داد؟! من در دیتابیس یک ردیف جدید اضافه کردم با عنوان 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>

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 9 فروردین 1395
  • 09:14

به شکل زیر کدتون رو اصلاح کنید

<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>

 

کاربر سایت

مرتضی پورمحمد

عضویت از 1393/12/23

  • پنجشنبه 12 فروردین 1395
  • 18:38

با سلام

خیر. این هم کاری نکرد.. البته من تغییری در کدها مشاهده نکردم!

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 13 فروردین 1395
  • 17:46

در 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 استفاده کنید

کاربر سایت

alirahnema

عضویت از 1394/11/08

  • جمعه 2 مهر 1395
  • 17:42

این روش در منو های چند سطحی و با تعداد رکورد زیاد بسیار کند است؟؟؟؟؟؟؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 2 مهر 1395
  • 17:45

معمولا بعد ساختن برای مدتی Cache میکنیم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)