Dans ASP.net MVC, l'injection de dépendances avec des contrôleurs est simple et directe. Maintenant, je voudrais enlever la plupart de la logique des vues en utilisant des aides. Le problème est que ces assistants utilisent certains des objets qui sont injectés.Aide et injection de dépendance ASP.NET MVC
Permettez-moi d'écrire un exemple:
public interface ISessionData
{
List<string> IdList {get;}
}
public MyController : Controller
{
public MyController(ISessionData sessionData)
{
...
}
}
données de session
est injectée dans le contrôleur. Jusqu'ici tout va bien. Mais maintenant j'ai un assistant. Disons qu'il ressemble à ceci:
public class MyHelper
{
private readonly ISessionData sessionData;
public MyHelper(ISessionData sessionData)
{
this.sessionData = sessionData;
}
public bool CheckSomethingExistsInSession(string id)
{
return sessionData.IdList.Any(x => x.Id.Equals(id));
}
}
Maintenant, quoi? Je voudrais que MyHelper
soit injecté dans la vue. La seule chose que je peux voir est d'ajouter cette aide pour modéliser et passer à voir à chaque fois. D'autres idées?