<?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%2FPartial_Views</id>
	<title>Webframeworkk/ASP.NET Core/Partial 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%2FPartial_Views"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Partial_Views&amp;action=history"/>
	<updated>2026-08-19T17:35:09Z</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/Partial_Views&amp;diff=262&amp;oldid=prev</id>
		<title>imported&gt;Import: Version 187</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Partial_Views&amp;diff=262&amp;oldid=prev"/>
		<updated>2026-02-18T13:07:32Z</updated>

		<summary type="html">&lt;p&gt;Version 187&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;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
In ASP.NET Core MVC ist eine &amp;#039;&amp;#039;&amp;#039;Partial View&amp;#039;&amp;#039;&amp;#039; (Teilansicht) ein wiederverwendbarer Block von Razor-Markup (.cshtml), der in andere Views eingebettet werden kann. Sie sind dafür konzipiert, spezifische UI-Elemente wie Listen, Formulare, Navigationsleisten oder Widgets zu kapseln.&lt;br /&gt;
&lt;br /&gt;
=== Warum Partial Views verwenden? ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wiederverwendbarkeit:&amp;#039;&amp;#039;&amp;#039; Code einmal schreiben und in mehreren Views verwenden, was Duplikate und Inkonsistenzen reduziert.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Modularität:&amp;#039;&amp;#039;&amp;#039; Komplexe Views in kleinere, überschaubare Komponenten aufteilen, wodurch der Code leichter zu lesen und zu warten ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dynamischer Inhalt:&amp;#039;&amp;#039;&amp;#039; Daten an Partial Views übergeben, um sie an verschiedene Kontexte anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Grundlagen von Partial Views ==&lt;br /&gt;
&lt;br /&gt;
=== Namenskonvention ===&lt;br /&gt;
&lt;br /&gt;
Partial Views werden typischerweise mit einem führenden Unterstrich benannt (z. B. _ListPartialView.cshtml). Dies hilft, sie von vollständigen Views zu unterscheiden.&lt;br /&gt;
&lt;br /&gt;
=== Speicherort ===&lt;br /&gt;
&lt;br /&gt;
Standardmäßig sucht ASP.NET Core nach Partial Views in:&lt;br /&gt;
&lt;br /&gt;
# Dem gleichen Ordner wie die View, die sie rendert.&lt;br /&gt;
# Dem Ordner Views/Shared.&lt;br /&gt;
&lt;br /&gt;
Sie können bei Bedarf auch den vollständigen Pfad angeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Rendern von Partial Views ==&lt;br /&gt;
&lt;br /&gt;
Sie können Partial Views in Ihren Haupt-Views mithilfe von Tag Helpers oder HTML Helpers rendern.&lt;br /&gt;
&lt;br /&gt;
=== 1. Tag Helpers (Empfohlen) ===&lt;br /&gt;
&lt;br /&gt;
Der &amp;lt;partial&amp;gt; Tag Helper ist sauberer und leichter zu lesen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;!-- Einfaches Rendern --&amp;gt;&lt;br /&gt;
&amp;lt;partial name=&amp;quot;_ListPartialView&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Mit einem Model --&amp;gt;&lt;br /&gt;
&amp;lt;partial name=&amp;quot;_ListPartialView&amp;quot; model=&amp;quot;yourModel&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Mit ViewData --&amp;gt;&lt;br /&gt;
&amp;lt;partial name=&amp;quot;_ListPartialView&amp;quot; view-data=&amp;quot;yourViewData&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 2. HTML Helpers ===&lt;br /&gt;
&lt;br /&gt;
Die Methoden Html.PartialAsync oder Html.RenderPartialAsync können ebenfalls verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&amp;lt;!-- Gibt IHtmlContent zurück --&amp;gt;&lt;br /&gt;
@await Html.PartialAsync(&amp;quot;_ListPartialView&amp;quot;)&lt;br /&gt;
@await Html.PartialAsync(&amp;quot;_ListPartialView&amp;quot;, yourModel)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Rendert direkt in den Antwort-Stream (void Rückgabe) --&amp;gt;&lt;br /&gt;
@{ await Html.RenderPartialAsync(&amp;quot;_ListPartialView&amp;quot;); }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis: RenderPartialAsync ist im Allgemeinen schneller, da es direkt in den Antwort-Stream schreibt.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung: ViewBag vs. Streng Typisiert ==&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Verwendung von ViewBag (Nicht empfohlen für komplexe Daten) ===&lt;br /&gt;
&lt;br /&gt;
Sie können ViewBag oder ViewData verwenden, um Daten zu übergeben, aber es fehlt die Typsicherheit.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Partial View (_ListPartialView.cshtml):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;list-container&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;@ViewBag.ListTitle&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
    @foreach (string item in ViewBag.ListItems)&lt;br /&gt;
    {&lt;br /&gt;
        &amp;lt;li&amp;gt;@item&amp;lt;/li&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Haupt-View (Index.cshtml):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;@{&lt;br /&gt;
    // Daten über ein neues ViewDataDictionary übergeben, um das Haupt-ViewData nicht zu verunreinigen&lt;br /&gt;
    var myViewData = new ViewDataDictionary(ViewData);&lt;br /&gt;
    myViewData[&amp;quot;ListTitle&amp;quot;] = &amp;quot;Länder&amp;quot;;&lt;br /&gt;
    myViewData[&amp;quot;ListItems&amp;quot;] = new List&amp;lt;string&amp;gt;() { &amp;quot;USA&amp;quot;, &amp;quot;Deutschland&amp;quot;, &amp;quot;Japan&amp;quot; };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;partial name=&amp;quot;_ListPartialView&amp;quot; view-data=&amp;quot;myViewData&amp;quot; /&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Option 2: Streng typisierte Partial Views (Empfohlen) ===&lt;br /&gt;
&lt;br /&gt;
Die Verknüpfung einer Partial View mit einer Modellklasse bietet Typsicherheit zur Kompilierzeit und IntelliSense.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Das Modell (ListModel.cs):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;namespace PartialViewsExample.Models&lt;br /&gt;
{&lt;br /&gt;
    public class ListModel&lt;br /&gt;
    {&lt;br /&gt;
        public string ListTitle { get; set; } = &amp;quot;&amp;quot;;&lt;br /&gt;
        public List&amp;lt;string&amp;gt; ListItems { get; set; } = new List&amp;lt;string&amp;gt;();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Streng typisierte Partial View (_ListPartialView.cshtml):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;@model ListModel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;list-container&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h3&amp;gt;@Model.ListTitle&amp;lt;/h3&amp;gt; &lt;br /&gt;
    &amp;lt;ul class=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
    @foreach (string item in Model.ListItems) &lt;br /&gt;
    {&lt;br /&gt;
        &amp;lt;li&amp;gt;@item&amp;lt;/li&amp;gt;&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Haupt-View (Index.cshtml):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;@using PartialViewsExample.Models&lt;br /&gt;
&lt;br /&gt;
@{&lt;br /&gt;
    ListModel listModel = new ListModel();&lt;br /&gt;
    listModel.ListTitle = &amp;quot;Länder&amp;quot;;&lt;br /&gt;
    listModel.ListItems = new List&amp;lt;string&amp;gt;() { &amp;quot;USA&amp;quot;, &amp;quot;Kanada&amp;quot;, &amp;quot;Japan&amp;quot; };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Das Modell an die Partial View übergeben --&amp;gt;&lt;br /&gt;
&amp;lt;partial name=&amp;quot;_ListPartialView&amp;quot; model=&amp;quot;listModel&amp;quot; /&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Rückgabe von Partial Views aus Controllern (PartialViewResult) ==&lt;br /&gt;
&lt;br /&gt;
PartialViewResult wird verwendet, wenn Sie &amp;#039;&amp;#039;nur&amp;#039;&amp;#039; das HTML der Partial View zurückgeben möchten, oft für AJAX-Anfragen (z. B. Aktualisierung eines Teils der Seite ohne vollständiges Neuladen).&lt;br /&gt;
&lt;br /&gt;
=== Controller Action ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;[Route(&amp;quot;programming-languages&amp;quot;)]&lt;br /&gt;
public IActionResult GetLanguages()&lt;br /&gt;
{&lt;br /&gt;
    ListModel listModel = new ListModel() {&lt;br /&gt;
        ListTitle = &amp;quot;Programmiersprachen&amp;quot;,&lt;br /&gt;
        ListItems = new List&amp;lt;string&amp;gt;() { &amp;quot;Python&amp;quot;, &amp;quot;C#&amp;quot;, &amp;quot;Go&amp;quot; }&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Gibt nur das HTML der Partial View zurück&lt;br /&gt;
    return PartialView(&amp;quot;_ListPartialView&amp;quot;, listModel);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Client-seitiges Beispiel (AJAX) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;button id=&amp;quot;load-btn&amp;quot;&amp;gt;Sprachen laden&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;content-area&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
    document.querySelector(&amp;quot;#load-btn&amp;quot;).addEventListener(&amp;quot;click&amp;quot;, async function() {&lt;br /&gt;
        // Das HTML der Partial View vom Controller abrufen&lt;br /&gt;
        var response = await fetch(&amp;quot;programming-languages&amp;quot;);&lt;br /&gt;
        var html = await response.text();&lt;br /&gt;
        &lt;br /&gt;
        // Das HTML in das div einfügen&lt;br /&gt;
        document.querySelector(&amp;quot;#content-area&amp;quot;).innerHTML = html;&lt;br /&gt;
    });&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Wichtige Punkte ==&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Kapselung:&amp;#039;&amp;#039;&amp;#039; Verwenden Sie Partial Views, um Code zu organisieren und das DRY-Prinzip (Don’t Repeat Yourself) einzuhalten.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Typsicherheit:&amp;#039;&amp;#039;&amp;#039; Bevorzugen Sie &amp;#039;&amp;#039;&amp;#039;streng typisierte&amp;#039;&amp;#039;&amp;#039; Partial Views (@model) gegenüber ViewData/ViewBag für bessere Wartbarkeit und Fehlerprüfung.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Benennung:&amp;#039;&amp;#039;&amp;#039; Stellen Sie Partial View-Dateinamen einen Unterstrich voran (z. B. _Header.cshtml).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;AJAX:&amp;#039;&amp;#039;&amp;#039; Verwenden Sie PartialViewResult in Controllern, um HTML-Fragmente für dynamische Seitenaktualisierungen bereitzustellen.&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>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Partial_Views&amp;diff=3203&amp;oldid=prev</id>
		<title>Thorsten: Die Seite wurde neu angelegt: „== Einführung == In ASP.NET Core MVC ist eine &#039;&#039;&#039;Partial View&#039;&#039;&#039; (Teilansicht) ein wiederverwendbarer Block von Razor-Markup (.cshtml), der in andere Views eingebettet werden kann. Sie sind dafür konzipiert, spezifische UI-Elemente wie Listen, Formulare, Navigationsleisten oder Widgets zu kapseln.  === Warum Partial Views verwenden? === * &#039;&#039;&#039;Wiederverwendbarkeit:&#039;&#039;&#039; Code einmal schreiben und in mehreren Views verwenden, was Duplikate und Inkonsistenzen…“</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Partial_Views&amp;diff=3203&amp;oldid=prev"/>
		<updated>2026-02-18T13:07:32Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „== Einführung == In ASP.NET Core MVC ist eine &amp;#039;&amp;#039;&amp;#039;Partial View&amp;#039;&amp;#039;&amp;#039; (Teilansicht) ein wiederverwendbarer Block von Razor-Markup (.cshtml), der in andere Views eingebettet werden kann. Sie sind dafür konzipiert, spezifische UI-Elemente wie Listen, Formulare, Navigationsleisten oder Widgets zu kapseln.  === Warum Partial Views verwenden? === * &amp;#039;&amp;#039;&amp;#039;Wiederverwendbarkeit:&amp;#039;&amp;#039;&amp;#039; Code einmal schreiben und in mehreren Views verwenden, was Duplikate und Inkonsistenzen…“&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.wissen-ahrensburg.de/index.php?title=Webframeworkk/ASP.NET_Core/Partial_Views&amp;amp;diff=3203&amp;amp;oldid=262&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Thorsten</name></author>
	</entry>
</feed>