Here we will understand Modal with a Different library,
means In MVC When we run a application then we need to specify correct
controller name with Action method ,If we pass wrong name then it gives error.
But with modal this is different, means modal is
optional and we can put it anywhere as library also.
Step (1):- Create a database table, So for that execute
the below code
Create Table StudentInfo
(
StudentID int identity primary key,
StudentName nvarchar(50),
Gender nvarchar(50),
SchoolName nvarchar(50)
)
GO
Insert into StudentInfo values ('Munesh','Male','VIT')
Insert into StudentInfo values ('Rahul','Male','ABC')
Insert into StudentInfo values ('Reet','Female','XYZ')
Insert into StudentInfo values ('Anshuman','Male','PQR')
|
Also Create a
stored procedure for Retriving data from database
Create procedure GetAllStudents
as Begin Select StudentID, StudentName, Gender, SchoolName from StudentInfo End |
Step(2):- Now
Add a new library to the solution .So for adding a Library to solution
, Right click on Solution explorer
-> Add ->New Project
Here New Project Screen will come ,from this screen we
will select “Windows - > “Class
Library “ And give this library a meaningful name “BusinessLayer”.
This automatically generate a class as “Class1.cs” , So
change the class name as “Student.cs” and Define the database property as we
define in Modal Classes
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace
BusinessLayer
{
public
class Student
{
public int
StudentID { get; set;
}
public string
StudentName { get; set;
}
public string
Gender { get; set;
}
public string
StudentClass { get; set;
}
}
}
|
Step(3): - Add a
another class to this library for writing business logic code through that we
will retrieve the data from database, Give this class name as “BusinessLogic.cs”.
Before writing code for retrieving the data from
database first add some reference for Ado.Net code to this library
Go to reference folder of this library project - >Right
click on Reference folder- > .Net
-> then select "System.Configuration" assembly. After that write following
code to this class
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace
BusinessLayer
{
public
class BusinessLogic
{
public IEnumerable<Student> student
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["Conncet"].ConnectionString;
List<Student>
employees = new List<Student>();
using (SqlConnection
con = new SqlConnection(connectionString))
{
SqlCommand cmd = new
SqlCommand("GetAllStudents",
con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Student student = new
Student();
student.StudentID = Convert.ToInt32(rdr["StudentID"]);
student.StudentName = rdr["StudentName"].ToString();
student.Gender = rdr["Gender"].ToString();
student.StudentClass = rdr["SchoolName"].ToString();
employees.Add(student);
}
}
return employees;
}
}
}
}
|
After everything done build this Library project.
Connection string in Web config will be
<connectionStrings>
<add name="Connect"
connectionString="server=.; database=MVCApplication;
integrated security=SSPI"
providerName="System.Data.SqlClient"/>
</connectionStrings>
|
Step(4): - Now
Go to your MVC Project add the reference of this library project, using right click
on Reference folder.
Step(5): - Now
go to controller folder and add a controller to this project ,give the name for
this controller as “Student”. In this controller add the name space for
BusinessLogic project.
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BusinessLayer;
namespace
MvcApplication2.Controllers
{
public
class StudentController
: Controller
{
public ActionResult
Index()
{
BusinessLogic BL = new
BusinessLogic();
List<Student>
student = BL.student.ToList();
return View(student);
}
}
}
|
Step(6):- Now Right click on this Controller method and
add a view , While creating view select Modal class as “Student” and Give
Scaffold template as “List”, So it will create a list for us.
@model IEnumerable<BusinessLayer.Student>
@{
ViewBag.Title = "Index";
}
<div>
<h2>Index</h2>
<p>
@Html.ActionLink("Create
New", "Create")
</p>
<table border =
"1">
<tr>
<th>
@Html.DisplayNameFor(model
=> model.StudentName)
</th>
<th>
@Html.DisplayNameFor(model
=> model.Gender)
</th>
<th>
@Html.DisplayNameFor(model
=> model.StudentClass)
</th>
<th>
Action To be Taken
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem
=> item.StudentName)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.Gender)
</td>
<td>
@Html.DisplayFor(modelItem
=> item.StudentClass)
</td>
<td>
@Html.ActionLink("Edit", "Edit",
new { id=item.StudentID }) |
@Html.ActionLink("Details", "Details",
new { id=item.StudentID }) |
@Html.ActionLink("Delete", "Delete",
new { id=item.StudentID })
</td>
</tr>
}
</table>
</div>
|
Before running this application changes the controller
name in Route.config file.
public static void
RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{ controller = "Student", action
= "Index", id = UrlParameter.Optional }
);
}
|
Now Run This Application you will get o/p like this
Here if you will click on any link it will give
exception because we didn’t work on these links.
No comments:
Post a Comment