نقل قول: طراحی دیتابیس منو سایت؟
برای منو ، شما میتونید با استفاده از Reflection منوهایی مثل جوملا بسازید تا نام همه ی Action های Controller هاتون را از Assembly مربوطه پیدا کنید .
نام اکشن ها رو میتونید جدا کنید ، از روی اون ها Route سایتتون رو بسازید و داخل دیتابیس اون هارو ذخیره کنید و به مدیر این لیست از اکشن هارو نمایش بدید تا بر اساس اون ها منو شما رو بسازند و دیگه نیازی به وارد کردن URL نیست.
برای استفاده از Reflection و بدست آوردن نام اکشن ها و کنترلر ها کافیه به این شکل عمل کنید :
var controllersActionNames =
from controller in Assembly.GetExecutingAssembly().GetTypes()
where typeof(Controller).IsAssignableFrom(controller)
from action in controller.GetMethods()
where typeof(ActionResult).IsAssignableFrom(action.Retur nType)
select new { Controller = controller, Action = action };
داخل داده های ذخیره شده در این متغییر شما به راحتی با استفاده از Linq میتونید جستجو کنید و نام اکشن ها و کنترلر هارو جدا کنید و Route هاتون رو بسازید و داخل دیتابیس ذخیره کنید .
نقل قول: طراحی دیتابیس منو سایت؟
اولا برای جدول page یه url بذار، که آدرس صفحه رو بجایر site.com/page/431 بصورت site.com/page/page-url-here نشون بدید که خیلی بهتره.
دوما،اگه میخواید که منو فقط بر اساس page ها باشه، دیگه نیازی به url در جدول منو نیست، و باید PageID رو ذخیره کنید. که درنهایت url اون منو با یه ریلیشن به پیج در میاد.