نحوه بدست آوردن تمامی Action  و Controller های یک پروژه MVC

نحوه بدست آوردن تمامی Action و Controller های یک پروژه MVC

بسم الله الرحمن الرحیم

 

ممکن است شما بخواهید در یک پروژه MVC لیست تمامی کنترلر ها و اکشن های پروژه خود بدست آورید.

 

در اینجا یک Extension متد نوشته ام که می توانید به سادگی لیست تمامی کنتترلرهای برنامه خود را بدست اورید:

اگر با متدهای توسعه یا همان Extension متد آشنایی ندارید، این مطلب را بخوانید

 

     public static List<string> GetControllerNames(this System.Web.Mvc.Controller controller)
        {
           try
            {


            List<string> controllerNames = new List<string>();
            GetSubClasses<System.Web.Mvc.Controller>().ForEach(
                type => controllerNames.Add(type.Name));
            return controllerNames;
              }
           catch (Exception exception)
           {
               throw new Exception(exception.Message);
           }
        }

 

 

برای استفاده از این کنترلر کافی است به صورت زیر عمل کتید

 

 

 

 

 

 

بسم الله الرحمن الرحیم

 

ممکن است شما بخواهید در یک پروژه MVC لیست تمامی کنترلر ها و اکشن های پروژه خود بدست آورید.

 

در اینجا یک Extension متد نوشته ام که می توانید به سادگی لیست تمامی کنتترلرهای برنامه خود را بدست اورید:

اگر با متدهای توسعه یا همان Extension متد آشنایی ندارید، این مطلب را بخوانید

 

     public static List<string> GetControllerNames(this System.Web.Mvc.Controller controller)
        {
           try
            {


            List<string> controllerNames = new List<string>();
            GetSubClasses<System.Web.Mvc.Controller>().ForEach(
                type => controllerNames.Add(type.Name));
            return controllerNames;
              }
           catch (Exception exception)
           {
               throw new Exception(exception.Message);
           }
        }

 

 

برای استفاده از این کنترلر کافی است به صورت زیر عمل کتید

 

List<string> listController = Controller.GetControllerNames();

 

ممکن است بخواهید لیست اکشن های یک کنترلر را نیز بدست آورید برای این کار نیز یک متد دیگر نوشته ام که اینکار را برای شما انجام می دهد

 

 public static List<string> ActionNames(string controllerName)
        {
            try
            {

            var types =
                from assemblies in AppDomain.CurrentDomain.GetAssemblies()
                from assembliesTypes in assemblies.GetTypes()
                where typeof(System.Web.Mvc.IController).IsAssignableFrom(assembliesTypes) &&
                        string.Equals(controllerName + "Controller", assembliesTypes.Name, StringComparison.OrdinalIgnoreCase)
                select assembliesTypes;

            var controllerType = types.FirstOrDefault();

            if (controllerType == null)
            {
                return Enumerable.Empty<string>().ToList();
            }
            return new System.Web.Mvc.ReflectedControllerDescriptor(controllerType)
                .GetCanonicalActions().Select(x => x.ActionName)
                .ToList();
      }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
        }

 

برای استفاده از این متد باید به صورت زیر عمل کنید:

 

List<string> listAction = ActionNames("AccountController");

 

انشالله که مفید واقع شود.

نظرات

  • Hannah Martinez
    مهدی
    دو شنبه 11 دی 1278 - 0:00

    سلام آقای شیدایی
    ابتدا باید از مطالب مفیدی که در این وبلاگ
    منتشر می کنید تشکر کنم.

    و اما بعد پیشنهادی بود که خواستم خدمت
    شما عرض کنم و آن هم اینکه اگر برای شما
    امکان دارد، همین آموزش ها را به زبان VB هم
    تدریس کنید و عده ای مشتاق یادگیری وب
    در این زمینه را خوشحال نمایید.

    عرض دیگرم این بود که هم اکنون آموزش ها
    اندکی حالت پراکندگی دارد و انسجام موضوعی
    آن کم است؛ خواهشمندم در صورت امکان زمینه ای
    فراهم کنید که بتوان آموزش ها را از نقطه شروع کرد
    و به جایی خاتمه داد. به طور مثال و عرض راهنمایی
    اینکه بیایید و یک پست ثابت در بالای وبلاگ یا یک باکس
    در ستون کناری وبلاگ در نظر بگیرید و این
    پست ثابت همانند فهرست یک کتاب باشد مثلا به این صورت

    آموزش ASP.Net MVC 4 به کمک EF5 به زبان C# (سطح ساده)
    1.معرفی
    2.نصب و نیاز های اولیه و ...
    3.ایجاد پروژه
    4.
    5. ....

    آموزش ASP.Net MVC 4 به کمک EF5 به زبان C# (سطح متوسط)

    1. ساخت دیتا مدل از نوع EF
    2. انجام عملیات های اصلی در EF (نوشتن، خواندن، بروزرسانی، حذف کردن)
    3. دسته بندی، فیلتر سازی، صفحه بندی
    4. ...


    آموزش ASP.Net MVC 4 به کمک EF5 به زبان C# (سطح پیشرفته)
    1.
    2.
    3.

    و هر کدام از این عنوان ها به یک پست لینک شده باشد

    البته الان مطالب وبلاگ تان را موضوع بندی کرده اید
    ولی این موضوع بندی برای شیوه ی آموزشی قدری مناسب
    به نظر نمی آید (البته با عرض معذرت و تشکر)

    موفق و موید باشید
    یا علی

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس