I just spent this morning upgrading the Yonkly code to work with the newly released ASP.NET MVC Framework Preview 3. I thought I would document what I did here, so that it might help others trying to upgrade their projects. Note: I haven’t deployed the upgraded version to yonkly.com but released the source code.
Yonkly was running on the preview-of-preview version from codeplex (more info here).
I downloaded and installed the preview 3 version from here.
I removed the references in my project to System.Web.Abstractions, System.Web.Mvc and System.Web.Routing and re-added them from
C:\Program Files\Microsoft ASP.NET\ASP.NET MVC Preview 3\Assemblies
ViewData works different now. If your page/control uses a typed ViewData as in
<span style="color: #0000ff">public</span> partial <span style="color: #0000ff">class</span> Messages : ViewPage <BaseViewData>
then ViewData property of your page is not of type BaseViewData as it were in the previous version. Instead this.ViewData is of type ViewDataDictionary<BaseViewData>.
This change is a pain in the ass, but I like it. It gives me the ability to send information to the View Data as dictionary items as well as typed objects. The actual typed “view data” can be accessed through the Model property i.e. this.ViewData.Model
Change #1: I changed all my ViewData.[property] to ViewData.Mode.[property] throughout the project (don’t forget the ascx and aspx pages).
JsonResult class added to the framework. This is cool but unfortunately, I hade a class with the same name.
Change #2: Resolve naming conflicts with JsonResult class.
RenderView isn’t party of the controller class any more and has been replaced by View
Change #3: Replace all RenderView calls to View
I was also having problems with the routing until I took out my default.aspx route. It seems that everything is working out good. I will post any more conversion related problems here and if you have some of your own, please share.