TOC

This article has been localized into German by the community.

Ansichten:

Erkunden der Ansicht: Controller und View verbinden

Zu Beginn dieses Tutorials habe ich gezeigt, wie ein Controller eine View einfach durch Aufrufen der View() -Methode zurückgeben kann. Dies funktioniert sogar ohne Parameter, sodass Sie sich an diesem Punkt möglicherweise fragen, wie ein Controller in der Welt genau weiß, welche Ihrer Ansichten für eine bestimmte Aktion zurückgegeben werden sollen. Die Antwort heißt View Discovery - ein Prozess, bei dem ASP.NET MVC versucht, die zu verwendende Ansicht zu erraten, ohne Sie zu zwingen, sie anzugeben.

View Discovery funktioniert, wenn Sie beim Erstellen Ihrer Projektstruktur eine bestimmte Konvention einhalten. Wir haben bereits in diesem Tutorial darüber gesprochen, in dem wir Controller immer in einen Ordner mit dem Namen "Controller", Models in einen Ordner mit dem Namen "Models" usw. gelegt haben. Bei Ansichten sollten Sie sie in einem nach dem Controller benannten Unterordner ablegen, und der Dateiname der Ansicht sollte mit dem Namen der Aktion übereinstimmen. Wenn Sie beispielsweise einen Controller mit dem Namen "ProductController" und einer Aktion mit dem Namen "Details" haben, sollte Ihre Ordnerstruktur folgendermaßen aussehen:

Mit anderen Worten, der Speicherort und die Benennung Ihrer Ansichten sollten dieser Konvention entsprechen:

/Views/[Controller Name]/[Action Name].cshtml

In diesem Fall können Sie einfach die View() -Methode aus Ihren Controller-Aktionen aufrufen und das .NET-Framework findet automatisch die richtige Ansicht für Sie:

public class ProductController : Controller
{
public IActionResult Index()
{
    return View();
}

public IActionResult Details()
{
return View();
}
}

Wenn das Framework mithilfe der oben genannten Konvention keine übereinstimmende Ansicht finden kann, wird sie an einer weiteren Stelle angezeigt:

/Views/Shared/[Action Name].cshtml

Der freigegebene Ordner, den Sie in Ihrem Ansichtenordner hinzufügen können, wird normalerweise für Layoutdateien und Teilansichten verwendet, die von mehreren Controllern gemeinsam genutzt werden. Wir werden das später besprechen, aber im Moment ist es am einfachsten, die oben beschriebene Konvention zur Ordnerstruktur zu befolgen.

Spezifizieren einer Ansicht

Wenn Sie die Konvention nicht einhalten können (oder nicht einhalten), können Sie dem Framework beim Auffinden der übereinstimmenden Ansicht helfen, indem Sie der View() -Methode einen Parameter übergeben. Es gibt zwei Möglichkeiten: Sie können entweder nur den Namen angeben, für den Sie die Ordnerstrukturkonvention befolgen müssen, aber eine Ansicht mit einem anderen Namen (stellen Sie sich das als Alias vor) wie folgt versehen:

public IActionResult Test()
{
return View("Details");
}

Oder Sie können den gesamten Pfad angeben, wodurch Sie bei der Erstellung Ihrer Projektstruktur vollkommen flexibel sind:

public IActionResult Test()
{
return View("/ViewFolderName/SomeFolderName/ViewName.cshtml");
}

Zusammenfassung

Wenn Sie beim Erstellen Ihrer Projektstruktur einer bestimmten Konvention folgen, können Ihre Controller mithilfe von View Discovery automatisch eine übereinstimmende Ansicht basierend auf dem Namen des Controllers und der Aktion finden. Wenn Sie diese Konvention nicht befolgen, können Sie eine bestimmte Ansicht einfach zurückgeben, indem Sie den Pfad und/oder Namen an die View() -Methode übergeben.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!