Bei einer PartialView warden Teile der View in kleinere
Komponenten aufgeteilt.
Im Beispiel kann die Navigationbar ausgelagert werden in
eine PartialView-Datei _NavBar
#Webpart, in Webforms als UserControl
Das Teilsegment wird eingefügt mit
Wenn man der PartialView ein Datenmodell oder
Informationen mitgeben möchte, dann kann man einen zweiten Parameter einbauen.
Dabei muss dann aber im Hauptdokument das ViewModel zuvor eingebunden werden
@model
ArtikelWeb.ViewModels.Artikel_Hersteller_ViewModel
..
..
@Html.Partial("_Navbar", Model.Hersteller)
|
@model
ArtikelWeb.ViewModels.Artikel_Hersteller_ViewModel
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>@ViewData["Title"] -
ArtikelWeb</title>
..
</head>
<body>
@Html.Partial("_Navbar", Model.Hersteller)
<div class="container
body-content">
@RenderBody()
<hr />
<footer>
<p>© 2017 -
ArtikelWeb</p>
</footer>
</div>
..
</body>
</html>
|
In die PartialView wird der Teil übertragen, welcher sich
zuvor in der Hauptdatei befand
<nav class="navbar navbar-inverse
navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a asp-area="" asp-controller="Home" asp-action="Index" class="navbar-brand">ArtikelWeb</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
<li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>
<li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
|
Die Datei standardmäßig in den Ordner /Views/Shared gelegt.
PartialViews und SharedViews werden per Definition mit
einem führenden Unterstrich benannt wie _NavBar