J'ai l'interface de service suivante:Méthode de la couche de service ne sont pas disponibles dans la méthode d'action du contrôleur
public interface IGrantApplicationService
{
IEnumerable<T> GetAll();
}
Voici mon implémentation de l'interface:
public class GrantApplicationService : IGrantApplicationService
{
public IEnumerable<GrantApplication> GetAll()
{
// Code here
}
public EditGrantApplicationViewModel CreateEditGrantApplicationViewModel()
{
// Code here
}
}
Mon contrôleur:
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);
}
}
S'il vous plaît voir dans ma méthode Create, j'essaye de créer mon modèle de vue à travers le service, mais whe n Je clique. alors il ne semble pas y avoir une option pour sélectionner CreateEditGrantApplicationViewModel, seulement GetAll est là. Pourquoi est-ce? J'ai toutes les bonnes références.
J'injecte une instance GrantApplicationService. –
Mais votre définition n'a que la méthode FindAll() - le compilateur ne sait pas quelle implémentation de cette interface sera transmise au moment de la compilation. Vous devriez invoquer la méthode par réflexion (ce qui serait un anti-pattern dans cette circonstance) –