Я создал действие для возврата всех контроллеров в моем проекте.
когда я отлаживаю, он показывает мне 4 предмета, но при использовании почтальона и чванства он показывает только один предмет.
Контроллер:
[HttpGet("GetControllerList")]
public async Task<IEnumerable<ControllerViewModel>> Get()
{
var asm = Assembly.GetExecutingAssembly();
var controller=await iMVCService.GetControllerDescovery(asm); ;
return controller;
}
и информация в сообщении:
{"data":[{"areaName":null,"controllerAttributes":{"name":"مدیریت دسته بندی ها","shortName":null,"description":null,"prompt":null,"groupName":null,"resourceType":null
Редактировать:
MVCSErive:
public async Task<IEnumerable<ControllerViewModel>> GetControllerDescovery(Assembly assemblies)
{
var controllers = assemblies.GetExportedTypes()
.Where(t => typeof(ControllerBase).IsAssignableFrom(t))
.Select(t => new ControllerViewModel
{
ControllerAttributes = t.GetCustomAttribute<DisplayAttribute>(),
ControllerName = t.Name,
ControllerId = $"{t.Namespace} : {t.Name}"
})
.Where(x => x != null)
.ToList();
return controllers;
}
и модель View:
public class ControllerViewModel
{
public string AreaName { get; set; }
//
// Summary:
// Returns the list of the Controller's Attributes.
public DisplayAttribute ControllerAttributes { get; set; }
//
// Summary:
// Returns the `DisplayNameAttribute` value
public string ControllerDisplayName { get; set; }
//
// Summary:
// It's set to `{AreaName}:{ControllerName}`
public string ControllerId { get; set; }
//
// Summary:
// Return ControllerActionDescriptor.ControllerName
public string ControllerName { get; set; }
}
в чем может быть проблема ???