Von
Andreas Aschauer
12. January 2010 08:00
Die generische Klasse ViewPage des ASP.NET MVC Frameworks kann, bei Verwendung mit dem .NET Framework 4.0, auch gut genutzt werden um mit dynamic Objekten zu arbeiten.
1: public ActionResult Details()
2: {
3: dynamic detailsObject = new ExpandoObject();
4: dynamic address = new ExpandoObject();
5:
6: address.Street = "Musterstrasse";
7: address.StreetNumber = "11";
8: address.PostCode = 1111;
9:
10: detailsObject.Name = "Andreas Aschauer";
11: detailsObject.Adress = address;
12:
13: return View(detailsObject);
14: }
Einfach das dynamische Objekt zusammenbauen und die View von ViewPage<dynamic> ableiten, schon kann man mit den Eigenschaften arbeiten.
1: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
2:
3: <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
4: Details
5: </asp:Content>
6:
7: <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
8: <h2>Details</h2>
9:
10: Name: <%= Model.Name %>
11: Adresse: <%= Model.Adress.Street %>
12: </asp:Content>
Bei Verwendung der neuen Betaversion von Resharper 5.0bekommt man für die Properties der dynamischen Typen sogar IntelliSense Unterützung. Die ist zwar noch nicht ganz perfekt, aber schon mal ganz praktisch.