ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

نحوه بدست آوردن تمامی 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);
           }
        }

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

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");

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

نظرات (۱)

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

و اما بعد پیشنهادی بود که خواستم خدمت
شما عرض کنم و آن هم اینکه اگر برای شما
امکان دارد، همین آموزش ها را به زبان 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.

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

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

موفق و موید باشید
یا علی
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید