Hi,
ich steige derzeit etwas ein in das Thema ASP.NET Core 2.0 MVC, mal ein
bisschen reintasten. Habe ein Videotutorial (Leider noch für Core 1.0)
dazu gefunden, welches jetzt für den Einstieg ganz praktisch war. Nun
habe ich eine Webandwendung mit zwei Controllern gebaut.
Nehmen wir mal an, im Projektverzeichnis gibts damit entsprechend:
1 | /Controllers/HomeController.cs
|
2 | /Controllers/andereSeiteController.cs
|
3 | /Views/Home/Index.cshtml
|
4 | /Views/andereSeite/Index.cshtml
|
Beide Views lassen sich bei entsprechender Adresseingabe einwandfrei
aufrufen. Nun würde ich auf der Home-Seite (Views/Home/Index) gerne
einen Link unterbringen, der mir dann die Views/andereSeite/Index lädt.
Entsprechend habe ich in der Views/Home/Index einen Link untergebracht:
----------
Leider kann ich dieses HTML-Zeile nicht zitieren, da mir das Forum hier
Spam erkennt, ich taste mich mal ran:
1 | asp-action="AndereSeite">Andere Seite
|
Ich habe jetzt den ersten Teil des öffenden a-Tags und das komplette
schließende a-Tag für die Forensoftware weggelassen.
----------
und im Home-Controller (/Controllers/HomeController.cs) eine passende
Methode:
1 | // GET: Home/andereSeite
|
2 | public IActionResult andereSeite()
|
3 | {
|
4 | return View("Views/andereSeite/Index.cshtml");
|
5 | }
|
Wie man sieht, bin ich zumindest schonmal so weit gekommen, dass ich die
andere View vom AppVerzeichniss aus, inkl. der Erweiterung angeben muss.
Ich zitiere dazu MS:
> Wenn einen absoluten Pfad, angefangen beim Stamm app verwenden
> (optional beginnend mit "/" oder "~ /"), wird die cshtml
> Erweiterung muss angegeben werden:
https://docs.microsoft.com/de-de/aspnet/core/mvc/views/overview
Dadurch erhalte ich immerhin keinen The View 'xyz' was not found. Fehler
mehr. Dafür eine NullRefernceException:
> NullReferenceException: Object reference not set to an
> instance of an object.
>
> AspNetCore._Views_andereSeite_Index_cshtml+<ExecuteAsync>
> d__8.MoveNext() in Index.cshtml, line 27
Also wird offensichtlich der Controller für diese View nicht
instanziert. Wie kriege ich denn den vernünftig(!) gestartet? Der Weg,
den jetzt aus der angesprochenen Methode im Home-Controller heraus zu
instanzieren, und dann irgendwie der anderen View mit zugeben, hört sich
für mich so absurd und Falsch an, dass ich da gar nicht experimentieren
will.