Метод из сервисного уровня недоступен в методе действия контроллера - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть следующий сервисный интерфейс:

public interface IGrantApplicationService
{
   IEnumerable<T> GetAll();
}

Вот моя реализация интерфейса:

public class GrantApplicationService : IGrantApplicationService
{
   public IEnumerable<GrantApplication> GetAll()
   {
      // Code here
   }

   public EditGrantApplicationViewModel CreateEditGrantApplicationViewModel()
   {
      // Code here
   }
}

Мой контроллер:

public class GrantApplicationController : Controller
{
   private IGrantApplicationService grantApplicationService;

   public GrantApplicationController(IGrantApplicationService grantApplicationService)
   {
      this.grantApplicationService = grantApplicationService;
   }

   public ActionResult Create()
   {
      // I am trying to create my view model like this and populate it with data
      EditGrantApplicationViewModel viewModel = grantApplicationService.CreateEditGrantApplicationViewModel();

      return View(viewModel);
   }
}

Пожалуйста, смотрите в моем методе Create, я пытаюсь создать модель представления через сервис, но когда я нажимаю. тогда, кажется, нет возможности выбрать CreateEditGrantApplicationViewModel, есть только GetAll. Почему это? У меня есть все правильные ссылки.

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Ваше поле grantApplicationService объявлено как IGrantApplicationService, но ваш метод CreateEditGrantApplicationViewModel отсутствует в интерфейсе.Просто добавьте CreateEditGrantApplicationViewModel в интерфейс, и все будет в порядке.

1 голос
/ 08 апреля 2011

Вам нужно определить

EditGrantApplicationViewModel CreateEditGrantApplicationViewModel();

на вашем IGrantApplicationService интерфейсе.

На данный момент контроллер знает только о том, что находится на интерфейсе, а не о классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...