Pages

Men

rh

10/20/2014

T4 Template Using XML

In this article we learn what a Text Template Transformation Toolkit (T4) template is using XML. If you are unfamiliar with the T4 template then please read my article What a T4 Template is in MVC.

Let's create an empty MVC4 project.
  1. Go to File → Project.
  2. Select ASP.NET MVC 4 Web Application and name it T4TemplateUsingXml.

    mvc web application
  3. Click Ok.
  4. Select an Empty Project.
ASP NET MVC Project
After creating the project let's add a folder called Xml in the root directory.
ADD new Folder
Right-click on the Xml folder and add a XML file and name it Employee.xml.

ADD XML file
After creating Employee.xml paste in the following code. 
  1. <Employee>  
  2.    
  3.      <EmployeeDetail>  
  4.          <Id>E001</Id>  
  5.          <Name>Pramod</Name>  
  6.          <Email>Pramod@yahoo.com</Email>  
  7.      </EmployeeDetail>  
  8.    
  9.      <EmployeeDetail>  
  10.          <Id>E002</Id>  
  11.          <Name>Ravi Kant</Name>  
  12.          <Email>Ravi@yahoo.com</Email>  
  13.      </EmployeeDetail>  
  14.    
  15.      <EmployeeDetail>  
  16.          <Id>E003</Id>  
  17.          <Name>Rahul</Name>  
  18.          <Email>Rahul@yahoo.com</Email>  
  19.      </EmployeeDetail>  
  20.    
  21.      <EmployeeDetail>  
  22.          <Id>E004</Id>  
  23.          <Name>Deepak</Name>  
  24.          <Email>Deepak@yahoo.com</Email>  
  25.      </EmployeeDetail>  
  26.    
  27.  </Employee>  
 To create a model right-click on the Models folder and add a class and name it Employee and paste in the following code: 
  1.  using System;  
  2.  using System.Xml.Serialization;  
  3.  namespace T4TemplateUsingXml.Models  
  4.  {  
  5.      [Serializable]  
  6.      [XmlRoot("Employee"), XmlType("Employee")]  
  7.      public class Employee  
  8.      {  
  9.          public string Id { getset; }  
  10.          public string Name { getset; }  
  11.          public string Email { getset; }  
  12.      }  
  13.  }  
 Now we create a controller, right-click on the Controller folder and add a controller named HomeController.
Home Controller
And then right-click on the index code inline and choose Add View using a scaffold empty template.
Add View
Add View1
Let's run the project and see the output.
                                                   Index
Now I make a copy of List.tt and name it PramodList.tt and make some changes. After that add another view called IndexXml using a scaffold PramodList template.

//Location of List.tt is C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 4\CodeTemplates\AddView\CSHTML

Add View List

And write some code in HomeController as in the following:
  1. public ActionResult IndexXml()  
  2.  {  
  3.      string Data = Server.MapPath("~/Xml/Employee.xml");  
  4.      DataSet ds = new DataSet();  
  5.      ds.ReadXml(Data);  
  6.      var employee = new List<Employee>();  
  7.      employee = (from item in ds.Tables[0].AsEnumerable()  
  8.      select new Employee  
  9.      {  
  10.          Id = item[0].ToString(),  
  11.          Name = item[1].ToString(),  
  12.          Email = item[2].ToString(),  
  13.      }  
  14.      ).ToList();  
  15.      return View(employee);  
  16.  }  
  17.    
And run the application.
                                                         Index XML 
Source collected from CSharpcorner.com
http://www.c-sharpcorner.com/UploadFile/b182bf/t4-template-using-xml/

No comments :

Post a Comment