2010-02-02 9 views

Antwort

3

Eine stark typisierte Ansicht in ASP.NET MVC erbt von System.Web.Mvc.ViewPage<T> und enthält eine Model-Eigenschaft, die vom Typ T angegeben ist. Dadurch kann Intellisense in Ihren Ansichten arbeiten.

2

Jede Ansicht hat eine Model Eigenschaft. Einen View stark zu typisieren bedeutet, dass er von einigen ViewPage<T> erbt, und die Model-Eigenschaft wird zum Typ von T. Wenn Sie Ihre View nicht stark eingeben, ist das Model vom Typ "Object".

Die starke Eingabe Ihres View-Modells hat Vorteile, da Sie direkt auf die Eigenschaften des Modells zugreifen können. Sie erhalten eine Intellisense- und Compiler-Prüfung, anstatt sich auf die Verwendung von "magischen Zeichenfolgen" zu verlassen, um auf ein ViewData-Wörterbuch zuzugreifen, das zur Laufzeit bricht, wenn sich Ihr Modell jemals ändert.

Zum Beispiel, wenn Sie

hatte
public class Person 
{ 
    public int Age { get; set; } 
} 

und Sie haben Ihre Ansicht stark von der Person Klasse eingegeben haben, würden Sie in der Lage sein Model.Age aus Ihrer Sicht Vorlagen zugreifen. Wenn Ihre Ansicht nicht stark typisiert wäre, hätte keine Eigenschaften, auf die Sie zugreifen könnten, und Sie müssten sie explizit in einen Typ umwandeln oder Ihre Daten über ein ViewData-Wörterbuch übergeben.

Um diese Ansicht stark einzugeben, erben Sie sie einfach von ViewPage<Person>.

1

Angenommen, Sie müssen mehrere lose zusammenhängende Daten in einer Ansicht anzeigen: Kontaktinformationen, Verkaufsprognosen und Anrufliste. Sie können diese einfach in ViewData einfügen und sie herausziehen und sie stark aus der Ansicht eintippen. Ein besserer Ansatz wäre jedoch, ein benutzerdefiniertes Modell zu erstellen, das alle diese Elemente kapselt. Dann würden Sie die Ansicht selbst für dieses benutzerdefinierte Modell eingeben. Es spielt in die Typensicherheit ein und macht die Code-Unterstützung unter anderen Vorteilen wie der Testbarkeit intuitiver.

Verwandte Themen