From 67217d7b2b6b9bdc009cdffd5b4823e621024e2a Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Sun, 28 Sep 2025 00:03:16 +0200 Subject: [PATCH] Added moch backend page --- src/Controllers/HomeController.cs | 25 +++++++++++++++++++++++++ src/Program.cs | 2 +- src/Views/Home/Index.cshtml | 20 ++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/Controllers/HomeController.cs create mode 100644 src/Views/Home/Index.cshtml diff --git a/src/Controllers/HomeController.cs b/src/Controllers/HomeController.cs new file mode 100644 index 0000000..36abf91 --- /dev/null +++ b/src/Controllers/HomeController.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Threading.Tasks; +using Berufsschule_HAM.Models; +using Novell.Directory.Ldap; +using Berufsschule_HAM.Services; + +[Route("[controller]")] +public class HomeController : Controller +{ + private readonly LdapService _ldap; + + public HomeController(LdapService ldap) + { + _ldap = ldap ?? throw new ArgumentNullException(nameof(ldap)); + } + + // GET: /Assets + [HttpGet("Index")] + [HttpGet("/")] + public IActionResult Index() + { + return View(); + } +} \ No newline at end of file diff --git a/src/Program.cs b/src/Program.cs index 48b9929..7a6159d 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -44,6 +44,6 @@ app.UseAuthorization(); app.MapControllerRoute( name: "default", - pattern: "{controller=Assets}/{action=Index}/{id?}"); + pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); diff --git a/src/Views/Home/Index.cshtml b/src/Views/Home/Index.cshtml new file mode 100644 index 0000000..33ecc34 --- /dev/null +++ b/src/Views/Home/Index.cshtml @@ -0,0 +1,20 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +
+

Crashcourse zu "MVC"

+

Die HTML, die grad gerendert wird, liegt in /Views/Home/ - dort sollte auch das Login später rein (bspw. als Login.cshtml)

+

Die Web-App folgt der MVC Struktur. D.h. man hat ein Model, ein View und einen Controller. (Wobei dieses View hier hat kein Model. Ist also mehr oder weniger optional.)

+

McDonalds Vergleich:

+

Der Controller ist der Kassierer; der nimmt die Informationen entgegen, verarbeitet diese und setzt eine Bestellnotiz zusammen.

+

Das Model ist die Bestellnotiz, die zur Küche weitergegeben wird mit den Informationen, wie es zubereitet werden muss.

+

Der View ist der Angestellte, der die Burger zusammensetzt; er kocht nichts und macht nichts groß kompliziertes, sondern tut nur die Teile in den Burger und gibt das Ergebnis zum Kassierer (d.h. Controller).

+

Normale Erklärung:

+

Ein Controller ist zwingend erforderlich und stellt den Endpoint unter einer Route bereit (d.h. das, was man im Browser eingibt, bspw. "/Home/Index")

+

Im Controller von diesem View ("/Controllers/HomeControllers.cs") findet man ein simples "return View();", was dafür sorgt, dass einfach diese .cshtml returned wird.

+

("Warum diese .cshtml?" - Bestimmt er selber anhand der Controller Route. Die Controller Route setzt er zusammen aus dem Namen der Klasse (wenn oberhalb der Klasse "[Route("[controller]")]" steht) und dem, was man vor eine Methode schreibt, bspw. "[HttpGet("Index")]" -> "/Home/Index" und "[HttpGet("/")]" -> "/".)

+

Wenn man Informationen vom Controller an das View übergeben will, tut man das mit einem Model; bspw. "return View(new AssetViewModel { cn = assetName, id = assetId });"

+

Ein Model ist ganz einfach eine Klasse, wie man sie kennt.

+

Logik kommt in den Controller und das HTML kommt in das View (... in der Praxis kommt ins View öfters mal auch bissl mehr Logik rein. Lässt sich nicht verhindern.)

+