12 July 2010 ASP.NET MVC, HowTo Robert Muehsig

imageWir hatten vor kurzem eine Umstellung einer ASP.NET MVC 1.0 Anwendung, welche unter .NET 3.5 lief, auf ASP.NET MVC 2 mit .NET 4.0 vollzogen. Hier ein paar kleine Anmerkungen dazu.

 

Sobald mit mit VS2010 eine Solution öffnet, welche mit VS2008 erstellt wurde und unter .NET 3.5 oder älter läuft, kommt sofort der Konvertierungswizard und fragt ob man auch die .NET Framework Version 4.0 haben möchte.

image

Nach der Konvertierung wurden auch automatisch die MVC 2 dlls hinzugefügt. Für VS 2008 gibt es auch einen Konverter, weil man diverse Änderungen in den web.configs machen muss.

MvcHtmlString

Die Helper im MVC 2 geben nun ein MvcHtmlString anstatt eines einfachen Strings zurück. Das kann z.B. beim ActionLink Helper zu Problemen führen, da der MvcHtmlString nicht die Methoden eines normalen Strings enthält (z.B. Substring)

ValueProvider

Der Zugriff auf die ValueProvider ist jetzt anders geregelt. War vorher der Zugriff so:

ViewContext.Controller.ValueProvider["Bla"].AttemptedValue

So ist er nun so:

ViewContext.Controller.ValueProvider.GetValue("Bla").AttemptedValue

 

Render View To String

In einem HowTo ging es darum, wie man das Ergebnis eines Views als String zurückbekommt um dies z.B. für Email-Templates zu verwenden.
In diesem Stackoverflow Thread gibts auch eine MVC 2 kompatible Lösung.

RedirectToAction<>

Auch im neuen MVC 2 Framework gibt es kein streng typisiertes RedirectToAction. Dies befindet sich wieder in den Futures.

Für das Deployment

Wichtig ist natürlich auch, dass im IIS alles richtig konfiguriert ist.

Mehr Schwierigkeiten sind uns jedenfalls nicht aufgetreten - happy upgrading :)


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de