نحوه بدست آوردن تمامی 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# (سطح متوسط)
آموزش ASP.Net MVC 4 به کمک EF5 به زبان C# (سطح پیشرفته)
1.
2.
3.
و هر کدام از این عنوان ها به یک پست لینک شده باشد
البته الان مطالب وبلاگ تان را موضوع بندی کرده اید
ولی این موضوع بندی برای شیوه ی آموزشی قدری مناسب
به نظر نمی آید (البته با عرض معذرت و تشکر)
موفق و موید باشید
یا علی