Mikmak View UnitBase ReadingOne View
Op deze pagina kan de beheerder de details van een rij uit de tabel UnitBase lezen/bekijken. Hij heeft dan de keuze om:
- de gekozen rij te updaten
- de gekozen rij te inserten
- de gekozen rij te deleten
- de details van een andere rij te bekijken
- te annuleren en terug naar Editing view te gaan
Probleem
In Mikmak UnitBase ReadingOne wireframe omzetten naar HTML hebben we gezien hoe de wireframe omzet naar html. We voegen nu de nodige attributen en Razor code toe om de details van de gekozen rij te tonen. Verder voegen de use cases toe die de gebruiker vanaf die pagina uitvoeren.
Design
- Je hebt reeds de actiemethode
ReadingOnein deUnitBaseControllerklasse toegevoegd. Hoe je dat doet lees je in Mikmak EF ReadOne actiemethode in UnitBaseController toevoegen. - We gebruiken de
@modeldirective om deUnitBaseinstantie vanuit de actiemethodeReadingOnein deUnitBaseControllerklasse op te vangen. Boevenaan de pagina voegen we de directive toe:@model Webwinkel.Models.UnitBase
- De volgende use cases moeten we toevoegen. We kiezen ervoor om hiervoor een
ahtml element te gebruiken en geen htmlbutton. Een button vereist eenformhtml element. Vermits we geen gegevens naar de server moeten sturen - behalve natuurlijk de request url met de uit te voeren actiemethode en eventueel de Id van de gekozen rij - kunnen we hiervoor eengetgebruiken.- Inserting
<a href="/UnitBase/Inserting" class="tile"> <span class="icon-plus"></span> <span class="screen-reader-text">Inserting</span> </a> - Updating - hier moeten we de
Idvan de te updaten rij meegeven<a href="/UnitBase/Updating/@Model.Id" class="tile"> <span class="icon-pencil"></span> <span class="screen-reader-text">Updating</span> </a>
- ReadingOne - dat wordt in de partial view ReadingAll.cshtml gedaan, zie Mikmak Views Refactoren met Partial Views
- Delete - hier moeten we de
Idvan de te deleten rij meegeven<a href="/UnitBase/Delete/@Model.Id" class="tile"> <span class="icon-remove"></span> <span class="screen-reader-text">Delete</span> </a> - Annuleren
<a href="/UnitBase/Cancel" class="tile"> <span class="icon-close"></span> <span class="screen-reader-text">Annuleren</span> </a>Vergeet niet de methodeCancelin deUnitBaseControlleraan te maken. Deze methode doet hetzelfde alsInsertingCancelmethode. Het is miscchien een beter idee om deze methode de refactoren en te veralgemenen naarCancel.
- Inserting
- Nu moeten we nog de input html elementen aanpassen. We voegen het attribuut
readonlytoe en vullen de waarden voor hetvalueattribuut in met de waarden van deUnitBaseinstantie.<fieldset> <div> <label for="UnitBaseCode">Code</label> <input id="UnitBaseCode" name="UnitBaseCode" class="text" style="width: 22.5%;" type="text" value="@Model.Code" readonly /> </div> <div> <label for="UnitBaseName">Nom</label> <input id="UnitBaseName" name="UnitBaseName" class="text" style="width: 32.5%;" type="text" value="@Model.Name" readonly /> </div> <div> <label for="UnitBaseDescription">Nom</label> <textarea id="UnitBaseDescription" name="UnitBaseDescription" class="text" style="width: 32.5%;" type="text" value="" readonly>@Model.Description</textarea> </div> </fieldset>
Oplossing
De volledige code voor ReadingOne.cshtml:
@model Webwinkel.Models.UnitBase
@{
Layout = "~/Views/Shared/MasterLayout.cshtml";
}
<div class="floor" id="flat-entity-floor">
<div class="control-panel">
<a href="/Home/Index" class="tile">
<span class="icon-menu2"></span>
<span class="screen-reader-text">Home</span>
</a>
<h1>MikMak</h1>
</div>
<form class="showroom" action="/UnitBase/Insert" method="post">
<header>
<h2>Details basiseenheid</h2>
<div id="command-panel" class="command-panel">
<a href="/UnitBase/Updating/@Model.Id" class="tile">
<span class="icon-pencil"></span>
<span class="screen-reader-text">Updating</span>
</a>
<a href="/UnitBase/Inserting" class="tile">
<span class="icon-plus"></span>
<span class="screen-reader-text">Inserting</span>
</a>
<a href="/UnitBase/Delete/@Model.Id" class="tile">
<span class="icon-remove"></span>
<span class="screen-reader-text">Delete</span>
</a>
<a href="/UnitBase/Cancel" class="tile">
<span class="icon-close"></span>
<span class="screen-reader-text">Annuleren</span>
</a>
</div>
</header>
@Html.Action("ReadingAll")
<div class="detail">
<fieldset>
<div>
<label for="UnitBaseCode">Code</label>
<input id="UnitBaseCode" name="UnitBaseCode" class="text"
style="width: 22.5%;" type="text" value="@Model.Code" readonly />
</div>
<div>
<label for="UnitBaseName">Nom</label>
<input id="UnitBaseName" name="UnitBaseName" class="text"
style="width: 32.5%;" type="text" value="@Model.Name" readonly />
</div>
<div>
<label for="UnitBaseDescription">Nom</label>
<textarea id="UnitBaseDescription" name="UnitBaseDescription" class="text"
style="width: 32.5%;" type="text" value="" readonly>
@Model.Description
</textarea>
</div>
</fieldset>
<div class="feedback">
</div>
</div>
</form>
</div>
2017-01-03 13:23:53