Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

T4 template for an MVC Controller with Entity Framework - member properties of the host (MvcTextTemplateHost)?

Does anyone have a full reference of the members of the Host object I can use in the T4 template ControllerWithContext.tt that comes with MVC 3?

I've tried every google search I could think of, but the only relevant result is this page: http://blogs.msdn.com/b/webdevtools/archive/2009/01/29/t4-templates-a-quick-start-guide-for-asp-net-mvc-developers.aspx

But it only shows 4 properties(ItemName, NameSpace, ExtraActionMethods, ControllerRootName) and not the full list. In the template there are things like RelatedProperties, EntitySetName, ModelType and ContextType.

I'm trying to find the full list of properties, their types and descriptions. Any help would be greatly appreciated.

like image 916
Alex Avatar asked Feb 23 '23 20:02

Alex


1 Answers

I have put together an unofficial list of ASP.NET MVC 3 properties available to T4 templates when you use the Add View or Add Controller dialogs in Visual Studio 2010. It does not cover the properties that are available when using MvcScaffolding in the NuGet Package Manager Console. The property information was determined using a T4 template to reflect over the public properties on the MvcTextTemplateHost.

Add Controller:

+--------------------+---------------+----------------------------------------------------------------------------------------+
|   Property Name    |     Type      |                                      Description                                       |
+--------------------+---------------+----------------------------------------------------------------------------------------+
| AddActionMethods   | Boolean       | Adds action methods to the generated controller class.                                 |
| AreaName           | System.String | The name of the Area that the controller is created for.                               |
| ContextType        | System.Type   | The type of the data context.                                                          |
| ControllerName     | String        | The name of the controller class that will be generated.                               |
| ControllerRootName | String        | The name of the controller class excluding the Controller part at the end of the name. |
| EntitySetName      | String        | Name of the property on the data context class containing the set of entities.         |
| ModelType          | System.Type   | The type of the model class specified in the Add Controller dialog.                    |
| Namespace          | String        | Namespace that will be used for the generated controller class.                        |
| PrimaryKeys        | PrimaryKey[]  | Primary keys for the model. See table at end for PrimaryKey properties.                |
| RelatedProperties  | Dictionary    | Related properties on the model. See table at end for RelatedModel properties.         |
+--------------------+---------------+----------------------------------------------------------------------------------------+

Add View:

+-----------------------------+---------------+------------------------------------------------------------------------------------------+
|        Property Name        |     Type      |                                       Description                                        |
+-----------------------------+---------------+------------------------------------------------------------------------------------------+
| AreaName                    | System.String | The name of the Area that the view is being created for.                                 |
| ContentPlaceHolderIDs       | List<string>  | List of content place holder IDs in the master page.                                     |
| IsContentPage               | Boolean       | True if the generated view will be created with a master page or a Razor layout page.    |
| IsPartialView               | Boolean       | True if the generated view is a partial view (e.g. an ASP.NET user control).             |
| MasterPageFile              | String        | Master page file or Razor layout to be used with view (e.g. ~/Views/Shared/Site.Master). |
| Namespace                   | String        | Namespace that will be used for the generated view.                                      |
| PrimaryContentPlaceHolderID | String        | Primary content place holder ID to be used when creating a view using a master page.     |
| ReferenceScriptLibraries    | Boolean       | True if checked in the Add View dialog.                                                  |
| ViewDataType                | System.Type   | The view model's type.                                                                   |
| ViewDataTypeName            | String        | Fully qualified name for the view model's type.                                          |
| ViewName                    | String        | Name of the view.                                                                        |
+-----------------------------+---------------+------------------------------------------------------------------------------------------+

Common Properties:

+---------------------+-------------------------+-----------------------------------------------------------------------------------------------+
|    Property Name    |          Type           |                                          Description                                          |
+---------------------+-------------------------+-----------------------------------------------------------------------------------------------+
| AssemblyPath        | List<string>            | List of assemblies referenced by the project and the project's output assembly. Internal use. |
| Errors              | CompilerErrorCollection | Used to stored errors that occur whilst processing the T4 template. Internal use.             |
| FileEncoding        | System.Text.Encoding    | The encoding of the file that will be generated.                                              |
| FileExtension       | String                  | Not set.                                                                                      |
| FrameworkVersion    | System.Version          | The .NET framework version.                                                                   |
| OutputFileExtension | System.String           | The extension of the file that will be generated.                                             |
| TemplateFile        | System.String           | The full path to the T4 template file being used.                                             |
+---------------------+-------------------------+-----------------------------------------------------------------------------------------------+
like image 167
Matt Ward Avatar answered Apr 28 '23 08:04

Matt Ward