Implement the Classic MVC Controller

The following article demonstrates how to implement a Classic MVC controller that uses the service you registered. For more information, see Implement the service layer with Ninject.

NOTE: This implementation does not create an MVC widget.

RECOMMENDATION: We do not recommend that you implement just the controller and the view without the associated model.

First, implement the controller:

C#
using SitefinityWebApp.Custom.Services;
using System.Web.Mvc;

namespace SitefinityWebApp.Controllers
{
    public class ClassicController : Controller
    {
        private readonly IHelloSitefinityService service;

        public ClassicController(IHelloSitefinityService service)
        {
            this.service = service;
        }

        public ActionResult Index()
        {
            var helloString = this.service.SayHello();

            return this.View(nameof(this.Index), helloString);
        }

    }
}

RECOMMENDATION: To make sure you can easily differentiate between the Classic MVC controllers and widget controllers, we recommend that you place the Classic MVC controllers in the <root>/Controllers folder.

Next, implement the view:

HTML+Razor
@model string

<h3> Result: @Model </h3>

RECOMMENDATION: To make sure you can easily differentiate between the Classic MVC views and widget views, we recommend that you place the Classic MVC views in the <root>/Views/<ControllerName> folder.

Once you build the project, the controller gets the service as a parameter to its constructor. When you request the domain/classic/<ControllerName>/ route, the controller is executed by the Classic MVC pipeline and returns the corresponding view.

Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?