Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Abgeschlossenes Projekt herunterladen
In diesem Abschnitt beginnen Sie mit der Definition des HTML-Codes für die App und fügen die Datenbindung zwischen dem HTML-Code und dem Ansichtsmodell hinzu.
Öffnen Sie die Datei Views/Home/Index.cshtml. Ersetzen Sie den gesamten Inhalt dieser Datei durch Folgendes.
@section scripts {
@Scripts.Render("~/bundles/app")
}
<div class="page-header">
<h1>BookService</h1>
</div>
<div class="row">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">Books</h2>
</div>
<div class="panel-body">
<ul class="list-unstyled" data-bind="foreach: books">
<li>
<strong><span data-bind="text: AuthorName"></span></strong>: <span data-bind="text: Title"></span>
<small><a href="#">Details</a></small>
</li>
</ul>
</div>
</div>
<div class="alert alert-danger" data-bind="visible: error"><p data-bind="text: error"></p></div>
</div>
<div class="col-md-4">
<!-- TODO: Book details -->
</div>
<div class="col-md-4">
<!-- TODO: Add new book -->
</div>
</div>
Die meisten Elemente sind für div vorhanden. Die wichtigen Elemente sind die Elemente mit data-bind Attributen. Dieses Attribut verknüpft den HTML-Code mit dem Ansichtsmodell.
Beispiel:
<p data-bind="text: error">
In diesem Beispiel bewirkt die "text"-Bindung, dass das <p> Element den Wert der error Eigenschaft aus dem Ansichtsmodell anzeigt. Denken Sie daran, dass error als ko.observable deklariert war.
self.error = ko.observable();
Wenn ein neuer Wert zugewiesen ist error, aktualisiert Knockout den Text im <p>Element.
Die foreach Bindung weist Knockout an, den Inhalt des books Arrays zu durchlaufen. Für jedes Element im Array erstellt Knockout ein neues <li-Element> . Bindungen im Kontext des foreach beziehen sich auf Eigenschaften des Array-Elements. Beispiel:
<span data-bind="text: Author"></span>
Hier liest die text Bindung die Autor-Eigenschaft jedes Buches.
Wenn Sie die Anwendung jetzt ausführen, sollte sie wie folgt aussehen:
Die Liste der Bücher wird asynchron geladen, nachdem die Seite geladen wurde. Derzeit sind die "Details"-Links nicht funktionsfähig. Wir fügen diese Funktionalität im nächsten Abschnitt hinzu.