Model in MVC in
Simple Way
In MVC ‘M’
stands for Model. In MVC model is used to create logic class for any MVC
application. We can put all our project logic called business logic in model in
MVC.
In this
example I am creating model in a simple way. In my next article I will discuss
model with strongly view.
For this
example I am taking controller name Home and method name is Index and create
view for this index method.
To add model
Right click on model folder from solution explorer ->go to add->class
Figure 1
Give a
proper name to the class. I have given the name EmployeeData. In this class I
have created some variable to store data. The code of this class is as
follows:-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcApplication5.Models
{
public class EmployeeData
{
public int EmpId;
public string EmpName;
public string EmpDept;
public int salary;
}
}
Now I go to the index method and create the object of
this class EmployeeData and assign some data to this object and pass this
object to the view as I want to show this data on this view.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication5.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
//create
object of this model.
MvcApplication5.Models.EmployeeData emp = new Models.EmployeeData();
emp.EmpId = 101;
emp.EmpName = "isha";
emp.EmpDept = "Developer";
emp.salary = 12000;
//pass
this object to the view
return View(emp);
}
}
}
Now go to
the view and create the object of this class. To create the object of any model
on view we use @model.
After that
use this object @model to show data on view which is as follows:-
@model
MvcApplication5.Models.EmployeeData
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<table border="1">
<tr>
<th>Employee ID</th>
<th>Employee Name</th>
<th>Employee Dept</th>
<th>Employee Salary</th>
</tr>
<tr>
<td>@Model.EmpId </td>
<td>@Model.EmpName </td>
<td>@Model.EmpDept </td>
<td>@Model.salary </td>
</tr>
</table>
</div>
</body>
</html>
As you can
see that I have created a table in which in first row I have printed the column
name and in second row I have showed the records using @model object which I
passed to this view from index method.
The output
of this code as follows:-
Figure 2
As you can
see that it’s showing records of that object.
Note:-we
must have to pass the object of model to the view otherwise it will show the
error.
In my next
article I will discuss same using model with strongly view.
Dear Mam,
ReplyDeleteGreetings of the day.
I raise a doubt in your above article.
when we have already instantiated the model object in the controller using
MvcApplication5.Models.EmployeeData emp = new Models.EmployeeData();
then what is the need for creating the same in the view??
@model MvcApplication5.Models.EmployeeData
Himanshu Pandey