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

By Pranay
07 Jan '15  ·  5916 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.

Post a comment

Recent Posts


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.