Expecting it to be painless to move from Preview 4 to Preview 5 was probably hoping a little too much ... but it certainly wasn't the worst thing in the world.
A couple of things did catch me that I didn't find in the notes for upgrade, so I thought I best post them in case someone else gets the same problems:
BindingHelperExtensions.UpdateFrom has gone
Yep, gone ... which was a bit of a pain. I understand many people are using other methods, and probably we should be too, but this was the simplest option and is now being used commonly here. In it's place it turns out that you can use:
UpdateModel.From(model, Request.Form.AllKeys)
this.ReadFromRequest has gone
Another removal, the replacement is:
Request["key"]
LinkBuilder and BuildUrlFromExpression gone
Actually they haven't, but they have been moved to Microsoft.Web.Mvc ... so you probably need to change your references to the new assembly.
Multiple Entries for System.Web.Routing in web.config
I did a manual edit to change the assembly version from 0.0.0.0 to 3.5.0.0 and I missed a few - it seems there are 4 entries for this assembly in my web.config - so check you updated all of them ...
Update: Html.CheckBox("rememberMe", "Remember me?", "rememberMe", true) has changed!
Missed this one till one of the developers here tried to get the login page to work ... it looks like they changed the signature of this, and a few other Html.xxxx extensions ... a bit of a pain, we only have around 50 views at the moment, and unfortunately it isn't a simple find/replace ... oh well ...
Further Update: Html.ActionLink is just plain broken
Grrrr ... This is annoying ... They went and changed the signatures on Html.ActionLink
This wouldn't be so bad, except that our previous line of:
Html.ActionLink("edit", "Edit", ViewData.Model.ControllerName, new { item.Id })
Doesn't work, and results in a link with ?Length=8 on the end of it. This appears to be because it is matching the wrong signature on the ActionLink overloads, and now matches "string controllerName" as object instead.
Fixing it is rather "yuk" ... force it to use the right overload with:
Html.ActionLink("edit", "Edit", ViewData.Model.ControllerName, new { item.Id }, null)