<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FRazor_Views</id>
	<title>Webframeworkk/ASP.NET Core/Razor Views - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=Webframeworkk%2FASP.NET_Core%2FRazor_Views"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Razor_Views&amp;action=history"/>
	<updated>2026-08-19T16:51:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Razor_Views&amp;diff=260&amp;oldid=prev</id>
		<title>imported&gt;Import: Version 185</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Razor_Views&amp;diff=260&amp;oldid=prev"/>
		<updated>2026-02-17T22:43:52Z</updated>

		<summary type="html">&lt;p&gt;Version 185&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Basierend auf der Analyse von &amp;#039;&amp;#039;start.txt&amp;#039;&amp;#039; enthält dieses Dokument Tutorials und Erklärungen zu den Kernkonzepten von ASP.NET Core MVC, einschließlich Architektur, Views, Razor-Syntax, Datenübergabe und der Erstellung wiederverwendbarer Komponenten.&lt;br /&gt;
&lt;br /&gt;
== MVC Architektur ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Model-View-Controller (MVC)&amp;#039;&amp;#039;&amp;#039; ist ein Entwurfsmuster, das eine Anwendung in drei logische Hauptkomponenten unterteilt:&lt;br /&gt;
&lt;br /&gt;
=== 1. Model (Modell) ===&lt;br /&gt;
&lt;br /&gt;
Repräsentiert die Daten und die Geschäftslogik der Anwendung.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Business Model (Domänenmodell)&amp;#039;&amp;#039;&amp;#039;: Repräsentiert reale Entitäten (z. B. Produkt, Kunde) und die Kerngeschäftslogik/-validierung.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;View Model&amp;#039;&amp;#039;&amp;#039;: Ein maßgeschneidertes Modell, das speziell für eine View entworfen wurde. Es kann Daten aus mehreren Geschäftsmodellen aggregieren oder UI-spezifische Eigenschaften enthalten.&lt;br /&gt;
&lt;br /&gt;
=== 2. View (Ansicht) ===&lt;br /&gt;
&lt;br /&gt;
Verantwortlich für das Rendern der Benutzeroberfläche (UI).&lt;br /&gt;
&lt;br /&gt;
* Typischerweise definiert in &amp;#039;&amp;#039;.cshtml&amp;#039;&amp;#039;-Dateien unter Verwendung der Razor-Syntax.&lt;br /&gt;
* Generiert dynamisch HTML basierend auf den vom Controller bereitgestellten Daten.&lt;br /&gt;
&lt;br /&gt;
=== 3. Controller (Steuerung) ===&lt;br /&gt;
&lt;br /&gt;
Arbeitet als Vermittler zwischen dem Model und der View.&lt;br /&gt;
&lt;br /&gt;
* Empfängt Benutzereingaben (HTTP-Anfragen).&lt;br /&gt;
* Interagiert mit dem Model, um Operationen durchzuführen oder Daten abzurufen.&lt;br /&gt;
* Wählt die geeignete View aus, um die Antwort zu rendern.&lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Ausführung ===&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Routing&amp;#039;&amp;#039;&amp;#039;: Die Anfrage wird an einen bestimmten Controller und eine Action-Methode weitergeleitet.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Model Binding&amp;#039;&amp;#039;&amp;#039;: Daten aus der Anfrage werden extrahiert und in Parameter umgewandelt.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Model Validation&amp;#039;&amp;#039;&amp;#039;: Daten werden gegen im Model definierte Regeln validiert.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Controller Action&amp;#039;&amp;#039;&amp;#039;: Logik wird ausgeführt (z. B. Datenbankaufrufe).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;View Selection&amp;#039;&amp;#039;&amp;#039;: Der Controller wählt eine View aus und übergibt ihr Daten (oft ein Model oder ViewModel).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Rendering&amp;#039;&amp;#039;&amp;#039;: Die View verarbeitet die Daten und generiert HTML.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Response&amp;#039;&amp;#039;&amp;#039;: Valides HTML wird an den Client zurückgesendet.&lt;br /&gt;
&lt;br /&gt;
=== MVC aktivieren ===&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;Program.cs&amp;#039;&amp;#039; wird der MVC-Service registriert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;builder.Services.AddControllersWithViews();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Dies aktiviert die Controller-Erkennung, die Razor View Engine, Model Binding und Validierung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Views in ASP.NET Core ==&lt;br /&gt;
&lt;br /&gt;
Views sind die Präsentationskomponente der MVC-Anwendung.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ort&amp;#039;&amp;#039;&amp;#039;: Konventionsgemäß befinden sich Views in &amp;#039;&amp;#039;Views/[ControllerName]/[ActionName].cshtml&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Funktion&amp;#039;&amp;#039;&amp;#039;: Sie führen Daten (vom Model/ViewData) mit HTML-Vorlagen zusammen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ViewResult&amp;#039;&amp;#039;&amp;#039;: Eine Controller-Action gibt typischerweise ein &amp;#039;&amp;#039;ViewResult&amp;#039;&amp;#039; unter Verwendung der &amp;#039;&amp;#039;View()&amp;#039;&amp;#039;-Hilfsmethode zurück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;public IActionResult Index()&lt;br /&gt;
{&lt;br /&gt;
    // Sucht standardmäßig nach Views/Home/Index.cshtml&lt;br /&gt;
    return View(); &lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Razor View Engine ==&lt;br /&gt;
&lt;br /&gt;
Razor ist die Markup-Syntax, die in ASP.NET Core Views verwendet wird, um C#-Code in HTML einzubetten.&lt;br /&gt;
&lt;br /&gt;
=== Wichtige Syntax-Elemente ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code-Blöcke&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;@{ ... }&amp;lt;/code&amp;gt; für mehrzeilige C#-Ausführung.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ausdrücke&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;@variable&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;@(ausdruck)&amp;lt;/code&amp;gt;, um Werte auszugeben.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Literale&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;@:&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;&amp;amp;lt;text&amp;amp;gt;...&amp;amp;lt;/text&amp;amp;gt;&amp;lt;/code&amp;gt;, um rohen Text innerhalb von Code-Blöcken auszugeben.&lt;br /&gt;
&lt;br /&gt;
=== Kontrollfluss ===&lt;br /&gt;
&lt;br /&gt;
Razor unterstützt Standard-C#-Kontrollflussstrukturen:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If/Else&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@if (Model.IsActive)&lt;br /&gt;
{&lt;br /&gt;
    &amp;amp;lt;p&amp;amp;gt;Aktiv&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
    &amp;amp;lt;p&amp;amp;gt;Inaktiv&amp;amp;lt;/p&amp;amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Schleifen (Loops)&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@foreach (var item in Model.Items)&lt;br /&gt;
{&lt;br /&gt;
    &amp;amp;lt;li&amp;amp;gt;@item.Name&amp;amp;lt;/li&amp;amp;gt;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Switch&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@switch (Model.Status)&lt;br /&gt;
{&lt;br /&gt;
    case Status.Pending:&lt;br /&gt;
        &amp;amp;lt;span&amp;amp;gt;Ausstehend...&amp;amp;lt;/span&amp;amp;gt;&lt;br /&gt;
        break;&lt;br /&gt;
    case Status.Complete:&lt;br /&gt;
        &amp;amp;lt;span&amp;amp;gt;Erledigt!&amp;amp;lt;/span&amp;amp;gt;&lt;br /&gt;
        break;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Lokale Funktionen in Razor ==&lt;br /&gt;
&lt;br /&gt;
Sie können wiederverwendbare C#-Funktionen direkt innerhalb einer Razor-View unter Verwendung des &amp;lt;code&amp;gt;@functions&amp;lt;/code&amp;gt;-Blocks definieren. Dies kapselt Logik, die spezifisch für diese View ist.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Syntax&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@functions {&lt;br /&gt;
    public string FormatDate(DateTime date)&lt;br /&gt;
    {&lt;br /&gt;
        return date.ToString(&amp;amp;quot;yyyy-MM-dd&amp;amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verwendung&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;Datum: @FormatDate(DateTime.Now)&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Vorteile&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* Hält view-spezifische Logik zusammen.&lt;br /&gt;
* Reduziert Code-Duplizierung innerhalb einer einzelnen View.&lt;br /&gt;
* Kann auf andere Mitglieder zugreifen, die im &amp;lt;code&amp;gt;@functions&amp;lt;/code&amp;gt;-Block definiert sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Html.Raw() ==&lt;br /&gt;
&lt;br /&gt;
Standardmäßig kodiert Razor alle String-Ausgaben, um XSS (Cross-Site Scripting)-Angriffe zu verhindern. &amp;lt;code&amp;gt;Html.Raw()&amp;lt;/code&amp;gt; wird verwendet, um einen String &amp;#039;&amp;#039;&amp;#039;ohne&amp;#039;&amp;#039;&amp;#039; Kodierung zu rendern.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verwendung&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@{&lt;br /&gt;
    string htmlContent = &amp;amp;quot;&amp;amp;lt;strong&amp;amp;gt;Fetter Text&amp;amp;lt;/strong&amp;amp;gt;&amp;amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
@Html.Raw(htmlContent)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Warnung&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sicherheitsrisiko&amp;#039;&amp;#039;&amp;#039;: Verwenden Sie dies nur mit vertrauenswürdigen Daten. Verwenden Sie &amp;lt;code&amp;gt;Html.Raw()&amp;lt;/code&amp;gt; niemals mit Benutzereingaben, es sei denn, diese wurden streng bereinigt (sanitized), da dies die Anwendung für XSS-Angriffe öffnet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== ViewData und ViewBag ==&lt;br /&gt;
&lt;br /&gt;
Mechanismen, um kleine Datenmengen vom Controller an die View zu übergeben.&lt;br /&gt;
&lt;br /&gt;
=== ViewData ===&lt;br /&gt;
&lt;br /&gt;
* Typ: &amp;#039;&amp;#039;ViewDataDictionary&amp;#039;&amp;#039; (Schlüssel-Wert-Dictionary).&lt;br /&gt;
* Erfordert Typumwandlung (Casting) für komplexe Typen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Verwendung&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;// Controller&lt;br /&gt;
ViewData[&amp;quot;Title&amp;quot;] = &amp;quot;Startseite&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// View&lt;br /&gt;
&amp;lt;h1&amp;gt;@ViewData[&amp;quot;Title&amp;quot;]&amp;lt;/h1&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== ViewBag ===&lt;br /&gt;
&lt;br /&gt;
* Typ: &amp;#039;&amp;#039;dynamic&amp;#039;&amp;#039;.&lt;br /&gt;
* Ein Wrapper um &amp;#039;&amp;#039;ViewData&amp;#039;&amp;#039;.&lt;br /&gt;
* Keine Typumwandlung erforderlich (wird zur Laufzeit geprüft).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Verwendung&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;// Controller&lt;br /&gt;
ViewBag.Title = &amp;quot;Startseite&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// View&lt;br /&gt;
&amp;lt;h1&amp;gt;@ViewBag.Title&amp;lt;/h1&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Best Practice&amp;#039;&amp;#039;&amp;#039;: Verwenden Sie &amp;#039;&amp;#039;Streng typisierte Views&amp;#039;&amp;#039; (ViewModels) für Hauptdaten. Verwenden Sie ViewData/ViewBag nur für kleine, nebensächliche Daten (wie Seitentitel).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Streng typisierte Views ==&lt;br /&gt;
&lt;br /&gt;
Binden Sie eine View direkt an eine spezifische Model-Klasse. Dies bietet &amp;#039;&amp;#039;&amp;#039;IntelliSense&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Typsicherheit&amp;#039;&amp;#039;&amp;#039; und Überprüfung zur Kompilierzeit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Syntax&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
# Definieren Sie den Modelltyp oben in der View:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@model MyProject.Models.Person&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Greifen Sie über die &amp;lt;code&amp;gt;Model&amp;lt;/code&amp;gt;-Eigenschaft auf Daten zu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;&amp;amp;lt;p&amp;amp;gt;Name: @Model.Name&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Controller&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;public IActionResult Details()&lt;br /&gt;
{&lt;br /&gt;
    var person = new Person { Name = &amp;quot;John&amp;quot; };&lt;br /&gt;
    return View(person);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;View Models&amp;#039;&amp;#039;&amp;#039;: Es ist üblich, spezifische Klassen (View Models) zu erstellen, die Daten aus mehreren Entitäten aggregieren oder Daten speziell für die View formatieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;public class PersonProductViewModel&lt;br /&gt;
{&lt;br /&gt;
    public Person Person { get; set; }&lt;br /&gt;
    public Product Product { get; set; }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== ViewImports.cshtml ==&lt;br /&gt;
&lt;br /&gt;
Eine spezielle Datei, die im &amp;#039;&amp;#039;Views&amp;#039;&amp;#039;-Ordner platziert wird, um gemeinsame Direktiven für alle Views in diesem Ordner (und Unterordnern) zu behandeln.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Häufige Verwendungen&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Namespaces&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;@using MyProject.Models&amp;lt;/code&amp;gt; (damit Sie es nicht zu jeder View hinzufügen müssen).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tag Helpers&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Layouts&amp;#039;&amp;#039;&amp;#039;: Definieren eines Standard-Layouts.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispielinhalt&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;razor&amp;quot;&amp;gt;@using MyProject&lt;br /&gt;
@using MyProject.Models&lt;br /&gt;
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es beachtet die Hierarchie: Eine &amp;#039;&amp;#039;_ViewImports.cshtml&amp;#039;&amp;#039; in einem Unterordner (&amp;#039;&amp;#039;Views/Home/_ViewImports.cshtml&amp;#039;&amp;#039;) überschreibt oder ergänzt die Einstellungen der Root-&amp;#039;&amp;#039;Views/_ViewImports.cshtml&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Geteilte Views (Shared Views) ==&lt;br /&gt;
&lt;br /&gt;
Views, die über mehrere Controller hinweg wiederverwendbar sind.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ort&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;Views/Shared/&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Häufige Typen&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Layouts&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;_Layout.cshtml&amp;#039;&amp;#039;): Definiert die gemeinsame Struktur (Header, Footer, Referenzen) für die App.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Partial Views&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;_PartialName.cshtml&amp;#039;&amp;#039;): Wiederverwendbare UI-Komponenten (z. B. eine Login-Box, ein Navigationsmenü).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erkennung&amp;#039;&amp;#039;&amp;#039;: Wenn ein Controller &amp;lt;code&amp;gt;View(&amp;amp;quot;MyView&amp;amp;quot;)&amp;lt;/code&amp;gt; zurückgibt, sucht ASP.NET Core in:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;Views/[Controller]/MyView.cshtml&amp;#039;&amp;#039;&lt;br /&gt;
# &amp;#039;&amp;#039;Views/Shared/MyView.cshtml&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Dieser Fallback-Mechanismus ermöglicht es Ihnen, globale Views im &amp;#039;&amp;#039;Shared&amp;#039;&amp;#039;-Ordner zu definieren.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>imported&gt;Import</name></author>
	</entry>
</feed>