Consuming Services In ASP.NET Core MVC View

This article will demonstrate how to inject services directly in MVC view.

In continuation of my previous article on injecting services in controller, this time I am writing on how to inject services directly in MVC View.

In order to achieve this, a new keyword @inject is used. So, let's get started.

  1. Create a new project - Create a new project using ASP.NET Web Application template as in the following:

  2. Add Service Interface - Create an interface named IGUIDService under Services folder as shown below:
    1. public interface IGUIDService  
    2. {  
    3.     string GenerateGUID();  
    4. }  
  3. Add Service Implementation - Create a class named GUIDService under Services folder and provide the implementation of IGUIDService interface as shown below:
    1. public class GUIDService : IGUIDService  
    2. {  
    3.     public string GenerateGUID()  
    4.     {  
    5.         return ("Generated GUID is: " + Guid.NewGuid()).ToString();  
    6.     }  
    7. }  
  4. Add a Controller - The next task is to add a Controller named GUIDController by right clicking on Controllers folder as shown below:

    MVC Controller
  5. Add a View - Before adding a View, create a folder under Views folder. Now add a View by right clicking on GUID folder as shown below:

    MVC View Page                                                                                                                                                                                                                                                           Once file is added, inject service inside View as:
    1. @inject IGUIDService guidService  
     Below is the complete code for displaying GUID on View: 
    1. @using CustomTagHelper.Services;  
    2. @inject IGUIDService guidService  
    4. <p>@guidService.GenerateGUID()</p>                                                                                                                             
  6. Register Service - The last step is to register the service in the ConfigureServices method of Startup class as shown below:
    1. public void ConfigureServices(IServiceCollection services)  
    2. {  
    3.     ...  
    4.     ...  
    5.     services.AddTransient<IGUIDService,GUIDService>();  
    6. }  
Everything is set. Now run your application and you will be able to see GUID on browser as:

Hope you got an idea on how to inject services in MVC View in ASP.NET Core 1.0.
Read more articles on ASP.NET Core: