Controller-Konstruktor aufgerufen, auf jede Anfrage

Ich versuche zum testen eine sehr einfache form, verwendet nur eine Liste und einen erstellen. Dies ist die Steuerung:

public class PositionsController : Controller
{
    private readonly IPositionRepository _positions;

    //default constructor
    public PositionsController()
    {
        _positions = new TestPositionRepository();
    }

    //DI constructor
    public PositionsController(IPositionRepository positions)
    {
        _positions = positions;
    }

    //get a list of all positions
    public ActionResult Index()
    {
        return View(_positions.GetAllPositions());
    }

    //get initial create view
    public ActionResult Create()
    {
        return View();
    } 

    //add the new Position to the list
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(Position positionToAdd)
    {
        try
        {
            _positions.AddPosition(positionToAdd);

            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
}

TestPositionRepository ist einfach ein mock-repository habe ich erstellt, um zu testen, dependency injection. Wenn ich versuche einen neuen Eintrag erstellen, bekomme ich die zurück geschickt, um die index-Ansicht, aber der neue Eintrag wird nicht Hinzugefügt, um die Liste. Die Verwendung der debugger zeigt, dass der Konstruktor aufgerufen wird, jedes mal, wenn ich auf einen link klicken oder öffnen Sie den link in der controller-Steuerung. Gibt es eine Möglichkeit, um dieses problem zu beheben? Ich habe das Gefühl ich mache es falsch. Was ich versuche zu tun, ist dependency injection mit Ninject, aber ich bin festgefahren auf dieses problem so weit.

InformationsquelleAutor Daniel T. | 2009-09-04
Schreibe einen Kommentar