Can we create a View with model in sitecore without creating a Controller?

By Pranay  ·  07 Jan '15  ·  4555 views

Problem: To create an MVC 'View' bound with a 'Model' but without creating any controller in Sitecore MVC 7.2.


We can create a view rendering passing a model to the view without any controller. Follow the below steps to create a sample view passing a custom model without using a controller.

Version used: Sitecore 7.2 with MVC 5.1

  1. Create Model class in C# .NET(LoginModel.cs). This is the model which we are going to pass it to a view.


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    namespace Sitecore.MyProjSolution.Website.Models.LoginModel
        public class LoginModel
            public string UserName { get; set; }
            public string Password { get; set; } 
  2. Create model in Sitecore.

    • Go to Layout->Models
    • Right click and create a model item with name 'MyModel'
    • In the Model type field enter the model class assembly path and namespace path separated by comma as shown below. Sitecore.MyProjSolution.Website.Models.LoginModel,Sitecore.MyProjSolution.Website
  3. Create view rendering in Sitecore

    • go to layout->Renderings
    • right click and create a View Rendering. Give some name to the view rendering
    • After creating the view rendering, under the Data section, assign values to its fields as shown below.

      • 'Path' -> (path to the view file i.e., the .cshtml file):say "Views/Account/Login.cshtml"

        Sample Login.cshtml:

        @model Sitecore.MyProjSolution.Website.Models.LoginModel
        <div class="dropdown-menu my-login-dropdown" style="padding:20px;">
            @using (Html.BeginForm("Login", "Account", FormMethod.Post))
                @Html.TextBoxFor(m => m.UserName, new { @class = "form-control", 
                                     @Placeholder = "Username" })
                @Html.PasswordFor(m => m.Password, new { @class = "form-control", 
                                     @Placeholder = "Password" })
                <input type="submit" id="btnLogin" class="btn btn-default" 
                       value="Submit" />
      • 'Model' -> CLick on 'Insert link' and select the sitecore model which we have created in the step 2 i.e, MyModel.

      • PlaceHolder -> select the placeHolder in which you want to render this view(placeHolder as per the Layout). Say ‘phLogin’.

        Below is the a sample layout file(SampleLayout.cshtml).

        <!DOCTYPE html>
        <html lang="en">
                <title>Sample Page</title>
                <div class="header">
                <div class="Body">
                <div class="footer">

In the above tutorial, just a blank Model class is passed without any data in it. This is normally useful to create Html submit Forms which are bound to Models using the @Html.BeginForm of MVC, but if you want to populate the model at Sitecore and pass that model data to the view go through the below tutorial.

How to pass a Sitecore populated Model from sitecore to a .NET MVC view

About the author

Pranay Deegoju
Sitecore Certified Professional

A Software Engineer by profession, a part time blogger and an enthusiast programmer. You can find more about me here.

Leave your comments on this post here


Liked this article?

Subscribe with your email and get updates when ever a new article is posted.

By subscribing you agree to our privacy terms. We promise that we do not sell your data.