ASP.NET MVC: Dynamic Types mit .NET 4.0

Von Andreas Aschauer Autor Feed 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.

General | Web-Development

Tags:  Feed Tag

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Windows Phone 7

Was halten Sie von Windows Phone 7



Show Results

Werbepause

CodeFest.at on Facebook

Calendar

<<  March 2010  >>
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

www.microsoft.com/austria | © 2009 Microsoft Corporation. Alle Rechte vorbehalten.
BlogEngine.NET 1.5.0.7 powered by atwork