I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
We have to already implement mvc project to retrive data with the help of model folder. Today, we will discuss about business objects as model in MVC. First to implement the business logic in the separate project. Add a new class library project in the solution, also Add two class in it.
First class that is, department.cs. Copy this code and paste into your department.cs file.
model
Add a reference of the class library project into the MVC project. Add a department controller in the controller folder. Through which, we will retrieve list of data. Copy this code and paste into your DepartmentController class.
Note : Select List as a Template, also select department as model class which is inside in Library class project. After adding the view in the MVC project.
Now run your application, without any changes in the View. Now, Your code generate the following output
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BusinessModel { public class department { public int Id { get; set; } public string Name { get; set; } } }
Code define the department table properties that is Id and Name. Second class that is, BusinessLayermodel.cs. Copy this code and paste into your BusinessLayermodel.cs file
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; namespace BusinessModel { public class BusinessLayermodel { public IEnumerable<department> departments { get { List<department> dept = new List<department>(); SqlConnection con = new SqlConnection(); con.ConnectionString= ConfigurationManager.ConnectionStrings ["EmployeeConnection"].ToString(); con.Open(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select * from [Department]"; cmd.Connection = con; SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { department dt = new department(); dt.Id=Convert.ToInt32(rd[0].ToString()); dt.Name = rd[1].ToString(); dept.Add(dt); } return dept; } } } }In this code, we have a public class BusinessLayermodel with single public property that is departments. This class work as context class, through this, we can access data from the database table by the public property of departments . Comparison between business layer model v/s MVC
model
Add a reference of the class library project into the MVC project. Add a department controller in the controller folder. Through which, we will retrieve list of data. Copy this code and paste into your DepartmentController class.
using BusinessModel; namespace WebApplication11.Controllers { public class DepartmentController : Controller { // // GET: /Department/ public ActionResult Index() { BusinessLayermodel blt = new BusinessLayermodel(); List<department> dept = blt.departments.ToList(); return View(dept); } } }Build the project before adding the view in the MVC project. Right click on your controller class, Add new view by the snap shot.
Note : Select List as a Template, also select department as model class which is inside in Library class project. After adding the view in the MVC project.
Now run your application, without any changes in the View. Now, Your code generate the following output
Comments
Post a Comment