3 Stimmen

Result.viewname ist immer string.empty

Ich scheine das Ergebnis .ViewName nicht für die Verwendung in Nunit-Tests zurückgeben zu können, da es immer string.empty zurückgibt. Ich habe den Namen der Ansicht explizit in meinem Controller festgelegt und würde erwarten, dass der Test dies erkennt. Ich habe herumgesucht und es scheint, dass ich den Viewname zurückbekommen sollte, wenn ich ihn explizit setze. Hat jemand Ideen?

public class HomeController : Controller
{

    public ActionResult Index()
    {
        return View("Index");
    }
}

Mein Test sieht so aus

    [Test]
    public void TestIndexView()
    {
        var controller = new HomeController();
        var result = controller.Index() as ViewResult;
        Assert.AreEqual("Index", result.ViewName);
    }

2voto

LukLed Punkte 30806

Haben Sie versucht, die Lösung zu reinigen und neu aufzubauen? Es sollte ohne Probleme funktionieren.

0voto

Donnie Punkte 43338

Du musst return new View("Index"); verwenden. Wenn dies in C wäre, liegt der Grund darin, wie du die View in Index() erstellst. Sie wird einfach auf dem Stack gespeichert und geht außerhalb des Gültigkeitsbereichs (und wird daher gesammelt), wenn die Funktion endet. Dies würde in C zu einem Absturz führen, aber C# scheint in dieser Hinsicht etwas klüger zu sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X