Ограничения доступа выполняются для каждого класса. Невозможно, чтобы метод, объявленный в классе, не мог получить доступ ко всем членам экземпляра / класса. Разумеется, внутренние классы также имеют неограниченный доступ к членам внешнего класса, а внешний класс имеет неограниченный доступ к членам внутреннего класса.
Поместив класс внутри другого класса, вы делают его жестко привязанным к реализации, и все, что является частью реализации, должно иметь доступ к другим частям.
Вам необходимо определить область, к которой принадлежит этот контроллер, используя атрибут для документов .
[Area("Products")]
public class ManageController : Controller
Обновление: Также вы определили api/{area:exists}/{controller}/{action}/{id?}
как ваш маршрут и в соответствии с вашим комментарием вы пытаетесь api/devices/sampler/8
. Таким образом, используя ваш маршрут в качестве руководства, ваш URL должен быть api/devices/sampler/GetSamples/8
. Вам необходимо включить имя действия в URL, так как оно указано в вашем маршруте: api/{area:exists}/{controller}/{action}/{id?}