Update

Update is de meest complexe van de vier. We willen hier namelijk de juiste film kunnen aanduiden aan de hand van zijn Id, dan willen we de velden invullen in een form, en als we dan effectief op update duwen kunnen we die niet gewoon in de database gooien, maar moeten we die op de juiste plek in de database kunnen aanpassen.

Wederom starten we bij het model, MovieEditViewModel. Bij ons gaat dat er niet heel veel anders uitzien dan MovieCreateViewModel. Onze Edit view gaat er bijna hetzelfde uitzien dan de Create view. Dit is niet altijd het geval, dus je kan niet zomaar MovieCreateViewModel hergebruiken. Denk maar aan je Facebook settings, deze zien er allemaal heel anders uit dan toen je je account aanmaakte.

Opnieuw gaan we in Index.cshtml een nieuw knopje toevoegen om een specifieke film te willen bewerken.

De Edit methode in de MovieController klasse gaat ook enorm lijken op die van de Detail methode. We willen dat alle velden in de form automatisch ingevuld worden.

We maken Edit.cshtml aan. Deze lijkt enorm veel op Create.cshtml, want het is een form om in te vullen. Als je deze zou copy/pasten vanuit de andere view, hoewel ik aanraad om het zelf opnieuw te typen om het “in de vingers te krijgen”, zorg er dan wel voor dat je de nodige aanpassingen maakt.

In de tweede Edit methode gaan we twee parameters gebruiken. Net zoals de Detail methode hebben we het Id nodig om op de juiste plek te kunnen updaten met FromRoute, en net zoals bij de Create methode gaan we het model meesturen met FromForm.

We voegen de nodige code toe. We maken een nieuw object en zetten deze op de plek van het opgevraagde Id. We valideren opnieuw het model om te kijken of alles juist is ingevuld.

Als we nu een film bewerken zien we een form dat we kunnen invullen.

En als we alles goed invullen, zal deze film bewerkt worden in de database.