This project is read-only.

T4MVC change history

3.10.0 (9-18-2014)

3.9.2 (8-7-2014)

3.9.1 (4-1-2014)

  • It's now possible to specify a folder from the project root that follows the "FeatureFolder"-convention (Settings-value: "FeatureFolderRootArea").

3.9.0 (3-27-2014)

3.8.2 (3-10-2014)

3.8.1 (3-6-2014)

3.8.0 (3-2-2014)

3.7.7 (2-23-2014)

3.7.6 (2-20-2014)

3.7.5 (1-28-2014)

3.7.4 (9-19-2013)

3.7.3 (8-09-2013)

3.7.2 (8-07-2013)

3.7.1 (7-05-2013)

3.7.0 (6-16-2013)

  • New AddAllViewsFoldersToStaticFilesFolders flag to include view folder files as static files (off by default)
  • New ExcludedViewExtensions setting to not treat certain file extensions as views

3.6.5 (5-19-2013)

3.6.4 (5-08-2013)

3.6.3 (5-08-2013)

  • Fix assembly signing

3.6.2 (5-07-2013)

3.6.1 (5-03-2013)

3.6.0 (4-26-2013)

3.5.4 (4-22-2013)

  • Make action results internal to avoid cross project conflicts

3.5.3 (4-19-2013):

  • Add support for portable areas without a standard area folder

3.5.2 (3-07-2013):

3.5.1 (2-25-2013):

3.5.0 (2-08-2013):

3.4.1 (1-31-2013):

3.4.0 (1-23-2013):

3.3.0 (1-16-2013):

3.2.1 (12-27-2012):

3.2.0 (12-11-2012):

3.1.0 (12-09-2012):

3.0.3 (11-30-2012):

3.0.2 (11-17-2012):

3.0.1 (11-16-2012):

3.0.0 (11-14-2012):

  • Move all the non-dynamic code to a separate T4MVCExtensions.dll assembly
  • Change generated code brace style to Allman
  • Added many new RouteLink/BeginRouteForm/RouteUrl helpers

2.13.0 (10-24-2012):

  • Move settings to XML file instead of tt file. See doc for details.
  • Make simple view names available alongside full names, e.g. MVC.Home.Views.SomeView vs MVC.Home.Views.ViewNames.SomeView

2.12.0 (10-16-2012):

2.11.2 (10-11-2012):

2.11.1 (10-10-2012):

2.11.0 (10-09-2012):

  • Corrects the ActionParameters class for overloaded actions to list all parameters and not just the parameters from the first action found.

2.10.4 (10-05-2012):

2.10.3 (09-30-2012):

2.10.2 (09-17-2012):

2.10.1 (07-31-2012):

2.10.0 (07-03-2012):

2.9.0 (06-22-2012):

2.8.1 (04-12-2012):

  • Also default to https for the default (no param) action overload
  • Make T4MVCHelpers class public so that test code in a different assembly can access it

2.8 (03-25-2012):

  • Generate parameter constants for action methods. e.g. MVC.MyController.MethodParams.someParam
  • Default to https for Action Methods marked as RequireHttps (either at controller or action level)

2.7.0 (03-09-2012):

2.6.68 (02-03-2012):

2.6.67 (12-24-2011):

2.6.66 (12-22-2011):

2.6.65 (12-06-2011):

2.6.64 (10-21-2011):

  • Fix issue when action parameter name is escaped using @ syntax (e.g. int @event)

2.6.63 (10-13-2011):

  • Move hard coded T4MVC namespace into settings file

2.6.62 (08-13-2011):

  • Replace some unwanted tab characters with whitespace

2.6.61 (08-01-2011):

2.6.60 (07-28-2011):

  • Added support for portable areas. Enabled by adding area names to PortableAreas in
  • When generating links and views, if the folder name is the same as the parent, add a modifier to avoid class name conflicts (

2.6.59 (07-12-2011):

2.6.58 (06-24-2011):

  • Change the controller detection logic to be more reliable and ignore anything that doesn't extend Controller.

2.6.57 (06-21-2011):

  • Re-added Html.ActionLink/Url.Action overload without default params to avoid running into "CS0854: An expression tree may not contain a call or invocation that uses optional arguments"
  • Make ProcessControllerActionMethods look for ControllerBase instead of Controller to support controllers like MailerBase (from ActionMailer) which extend ControllerBase.

2.6.56 (06-05-2011):

2.6.55 (06-05-2011):

2.6.54 (04-23-2011):

  • Added missing license to NuGet package and fixed some links. No actual template changes!

2.6.53 (04-18-2011):

2.6.52 (04-14-2011):

  • Moved the 'Dummy' class under the GenerateMvcT4Extensions check
  • Always include the area token in the route values unless running on MVC 1.x

2.6.51 (04-12-2011):

2.6.50 (04-08-2011):

  • Added AddTimestampToStaticLink() method to settings file to allow more granular decision (per this post)
  • Added GenerateMvcT4Extensions settings flag to omit the generation of the System.Web.Mvc.T4Extensions class, which can be useful if it is already defined in a referenced library (see this post)

2.6.44 (03-10-2011):

  • Added UseNonQualifiedViewNames flag which when set to true causes view names never to be fully qualified. Spark users may need that.

2.6.43 (02-24-2011):

  • Renamed T4MVC.settings.t4 to so it feels more like a 'child' file of

2.6.42 (02-01-2011):

2.6.41 (01-17-2011):

  • Added AJAX BeginForm overloads

2.6.40 (01-05-2011):

  • Added BeginForm overload that just takes an ActionResult
  • Fix MapRouteArea to use UseNamespaceFallback when there are no namespaces

2.6.32 (12-15-2010):

  • Fix bug in controller name generation when IncludeAreasToken is true

2.6.31 (11-15-2010):

  • Improve error message when T4MVC generated files are out of date.
  • Changed some 'const bool' settings to 'static bool' to avoid unused code warnings.
  • Disabled regen optimization added in 2.6.14 since it doesn't catch view changes

2.6.30 (09-05-2010):

  • Changed ExplicitHtmlHelpersForPartials flag to be off by default (and fix a small issue when it's off)
  • Handled System.NotImplementedException if project type (e.g. Installer) does not implement CodeModel property
  • Fixed issue when action method params are all optional (
  • Exclude Area related methods when using MVC 1.0, as that was breaking things
  • Added logic to special case DisplayTemplates/EditorTemplates folders, since they need short view names passed in

2.6.21 (07-20-2010):

  • Fix to the partial extension feature added in 2.6.20 to deal with conflicts

2.6.20 (07-19-2010):

  • Added extension methods to render partial views (see this post)
    • e.g. Html.RenderPartial("Map", Model.Dinner); --> Html.RenderMap(Model.Dinner);
    • Can be turned off in settings file via ExplicitHtmlHelpersForPartials flag.

2.6.15 (05-16-2010):

  • Added missing MapRoute overloads to support namespaces
  • Added MapRoute extensions on AreaRegistrationContext to support areas. Had to name them MapRouteArea to avoid clash with existing MapRoute methods :(

2.6.14 (05-06-2010):

  • Added UseLowercaseRoutes flag to lower case the area, controller and action names in routes
  • Added support for Views folders that don't match a controller name.
  • Added optimization to not regenerate files when the controller has not changed since the last generation
  • Turn AlwaysKeepTemplateDirty to false by default. We now have an addin which provides a better solution to this

2.6.13 (03-08-2010):

  • Added AddTimestampToStaticLinks flag to T4MVC.settings.t4 to generate static links that change when the file changes.
  • Added support for [Bind(Prefix = "newParamName")] attribute so it generates the correct route value
  • Added an AddRouteValues overload that takes NameValueCollection, e.g.
    • MVC.Home.About().AddRouteValues(Request.QueryString)
  • Added MapRoute overload that supports contraints
  • Removed some logic to support VS2010 Beta 2. VS2010 RC or later should now be used.

2.6.12 (01-15-2010):

  • Fixed issue where some special project types (e.g. DB projects) were throwing while enumerating over the list
  • Changed to use GeneratedCode attribute instead of the less correct CompilerGenerated
  • Fixed CompilerGenerated/DebuggerNonUserCode attributes so they don't incorrectly affect the control classes
  • Change to avoid adding area to route if the app is not using areas

2.6.11 (01-10-2010):

  • Added ExcludedStaticFileExtensions setting to T4MVC.settings.t4 to list extensions for which static links should not be generated.
  • Support configurable name for IT4MVCActionResult, and it being defined externally (for sharing pourpose)
  • Added DebuggerNonUserCode attribute to generated classes
  • Improved error handling when trying to call T4MVC method with real ActionResult (previous threw InvalidCast)
  • Fix issue when overridden action methods were incorrectly marked as virtual

2.6.10 (01-04-2010):

  • Added support for adding arbitrary route parameters to T4MVC actions. e.g.
    • MVC.Home.About().AddRouteValue("fooKey", bar.Foo.Key)
    • MVC.Home.About().AddRouteValues(new {fooKey = bar.Foo.Key, barKey = bar.Key})
  • Added shorter to refer to controller actions from with the controller itself. e.g.
    • return RedirectToAction(MVC.MyController.Actions.About()); BECOMES:
    • return RedirectToAction(Actions.About());
  • What was previously called Actions was renamed to ActionNames (note, that's a BREAKING CHANGE if you used Actions before!)
  • Ignore controller methods that are marked with a NonAction attribute
  • Renamed IT4MVCActionResult.RouteValues to avoid conflict (this should not break anything, as it's only used internally)

2.6.03 (12-10-2009):

  • Generate full view paths to allow cross controller references
    • e.g. MVC.Dinners.Views.DinnerForm is now "~/Views/Dinners/DinnerForm.ascx" instead of just "DinnerForm"
  • Fix compile error when a view name is a language keyword (e.g. string.ascx)

2.6.02 (12-04-2009)

  • Added way to get area name from both Area and Controller objects
    • e.g. MVC.MyArea.Name and MVC.MyArea.MyController.Area
  • Added support for controllers in the default namespace (i.e. no namespace)
  • Always include the area in the route data, even when it's null/empty

2.6.01 (12-02-2009)

  • Fix compile error when a custom ActionResult type has a ctor that takes a value type

2.6.00 (11-28-2009)

  • Added support for MVC 2 Areas
  • Fixed issue where non-existing RenderAction method gets generated on VS2010 Beta 2
  • Added check to give proper error when attempting to run T4MVC outside VS (e.g. from TextTransform.exe)

2.5.02 (11-24-2009)

  • Change links in comment to point to new T4MVC home and forum
  • Fix scenario where a View folder as a name that's a C# keyword

2.5.01 (11-20-2009)

  • Added support for Html.RenderAction and Html.Action (see
  • Fix null ref exception issue when custom ActionResult type doesn't have any explicit ctors

2.5.00 (11-16-2009)

  • Incorporated Damien Guard's multiple output manager to (optionally) split output from T4MVC into separate files to improve source control
  • Added support for minified javascript files in production
  • Fixed bug occurring when no action is of type ActionResult

2.4.04 (10-15-2009)

  • Added support for MVC 2 by detecting the version and generating slightly different code

2.4.03 (10-02-2009)

  • Added ProcessVirtualPath method to T4MVC.settings.t4 so user can write custom logic to modify client URL's
  • Greatly simplified GetProjectContainingT4File logic by using FindProjectItem().
  • Renamed generated classes to be CLS compliant
  • Moved most of the doc and versioning comments from into the readme.txt file, as it was getting a bit long.

2.4.02 (09-02-2009)

  • Added a setting in T4MVC.settings.t4 to set the namespace that Links get generated in
  • Added pragma to prevent compiler from complaining about missing Xml comments
  • Added <auto-generated /> comment to disable StyleCop in generated file
  • Fixed issue when using a custom ResultType in a custom namespace. Now fully qualifying result types.

2.4.01 (07-29-2009):

  • Put all the generated code in a T4MVC #region. This is useful to tell tools like ReSharper to ignore it.
  • Fixed issue where controller methods returning generic types cause template to blow up
  • Added a setting in T4MVC.settings.t4 to turn off the behavior that always keeps the template dirty

2.4.00 (07-28-2009):

  • Added support for configurable settings in a separate T4MVC.settings.t4 file
  • Added a parameter-less pseudo-action for every action that doesn't already have a parameter-less overload
  • Added support for having in a sub folder instead of always at the root of the project
  • Fixed issue when a base controller doesn't have a default ctor
  • Added T4Extensions into System.Web.Mvc namespace to fix ambiguous resolution issue
  • Misc cleanup

2.3.01 (07-10-2009):

  • Fixed issue with ActionName attribute set to non literal string values (e.g. ActionName(SomeConst + "Abc"))
  • Fixed duplication issue when partial controller classes have a base type which contains action methods
  • Skip App_LocalResources when processing views
  • Cleaned up rendering logic

2.3.00 (07-07-2009):

  • Added support for sub view folders
  • Added support for ActionName attribute
  • Improved handling when the controller comes from a different project
  • Don't try to process generic controller classes

2.2.03 (07-06-2009):

  • Added support for action methods defined on controller base classes
  • Improved error handling when not able to change actions to virtual and controllers to partial

2.2.02 (07-01-2009):

  • Fixed break caused by incorrect support for derived ActionResult types in 2.2.01
  • Fixed issue with duplicate view tokens getting generated when you have both foo.aspx and foo.ascx

2.2.01 (07-01-2009):

  • Added support for action methods that return a type derived from ActionResult (as opposed to exactly an ActionResult)
  • Fixed issue when controller is using partial classes
  • Fixed folder handling logic to deal with generated files
  • Fixed issue with folder names that are C# keyword
  • Throw NotSupportedException instead of NotImplementedException to avoid being viewed as a TODO

2.2.00 (06-30-2009):

  • Added strongly typed support to MapRoute
  • Changed constructor generation to avoid confusing IoC containers
  • Fixed issue with empty Content folder
  • Fixed issue with abstract controller base classes

2.1.00 (06-29-2009):

  • Added Html.BeginForm overloads that use the strongly typed pattern
  • Added Url() helpers on static resources to increase flexibility
  • Changed generated constants (view and action names, static files) to be readonly strings
  • Fixed null ref exception in Solution Folder logic

2.0.04 (06-28-2009):

  • Fixed issue with files and folders with names starting with a digit

2.0.03 (06-27-2009):

  • Rework code element enumeration logic to work around a VS2010 issue. The template should now work with VS2010 beta 1!
  • Reduced some redundancy in the generated code

2.0.02 (06-27-2009):

  • Added ActionLink overloads that take object instead of dictionary (from both Html and Ajax)

2.0.01 (06-26-2009):

  • Fixed issue with files and folders with invalid identifier characters (e.g. spaces, '-', '.')

2.0.00 (06-26-2009):

  • Added support for refactoring in Action methods
  • The T4 file automatically runs whenever you build, instead of being done manually
  • Support for strongly typed links to static resources
  • Fix: supports controllers that are in sub-folders of the Controllers folder and not directly in there
  • Fix: works better with nested solution folder
  • Random other small fixes

1.0.xx (06-17-2009):

Last edited Sep 18, 2014 at 7:57 PM by davidebbo, version 37


No comments yet.