Professional Documents
Culture Documents
namespace Address_Book.Data
{
public class MVCcontroller :DbContext
{
public MVCcontroller(DbContextOptions options) : base(options)
{
}
2) Domain=> class
3) Program.cs
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<MVCcontroller>(options => options.
UseSqlServer(builder.Configuration.GetConnectionString("MVCconnection")));
4) appsetting.json
"*",
"ConnectionStrings": {
"MVCconnection": "server=DESKTOP2PFS5TV\\SQL2022;database=Address_Book;Trusted_connection=true;
TrustServerCertificate=True"
}
5) normal view :
*table show*/
<div class="row">
<div class="col-md-12">
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Comapny Name</th>
<th>Company Address</th>
<th>City</th>
<th>Company Contact_No</th>
<th>Company Email</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var company in Model)
{
<tr>
<td>@company.cmp_Id</td>
<td>@company.cmp_Name</td>
<td>@company.cmp_Address</td>
<td>@company.city</td>
<td>@company.cmp_cno</td>
<td>@company.cmp_Email</td>
<td><a class="btn btn-secondary" asp-controller="company" asp-
action="view" asp-route-id="@company.cmp_Id">Update</a></td>
</tr>
}
</tbody>
</table>
</div>
</div>
// button
<br>
<a class="btn btn-primary" id="create" class="create" asp-controller="company" asp-
action="cmp_create">Create</a>
<br>
<br>
}
6) controller ne data sathe connect
7) update/add model
8) update /add form in view :
@model Address_Book.Models.Company_Detail.AddCompanyModel
@{
}
<link rel="stylesheet" type="text/css" href="~/css/style.css">
<head>
<script>
function validateForm() {
let a = document.forms["myForm"]["cmp_Name"].value;
if (a == "") {
alert("Company Name must be filled out");
return false;
}
let b = document.forms["myForm"]["cmp_Address"].value;
if (b == "") {
alert("Company Address must be filled out");
return false;
}
let c = document.forms["myForm"]["city"].value;
if (c == "") {
alert("city Name must be filled out");
return false;
}
let d = document.forms["myForm"]["cmp_cno"].value;
if (d == "") {
alert("Contact no must be filled out");
return false;
}
let e = document.forms["myForm"]["cmp_Email"].value;
if (e == "") {
alert("Comapny Email must be filled out");
return false;
}
}
</script>
</head>
<div class="container">
<div class="main">
<br />
<br />
<br />
<hr />
</form>
9) update/add controller
/* create data */
[HttpGet]
public IActionResult cmp_create()
{
return View();
}
[HttpPost]
public async Task<IActionResult> cmp_create(AddCompanyModel addcompanydetail)
{
var company1 = new company()
{
cmp_Id = Guid.NewGuid(),
cmp_Name = addcompanydetail.cmp_Name,
cmp_Address = addcompanydetail.cmp_Address,
city = addcompanydetail.city,
cmp_cno = addcompanydetail.cmp_cno,
cmp_Email = addcompanydetail.cmp_Email,
};
await MVCapplication.companies.AddAsync(company1);
await MVCapplication.SaveChangesAsync();
return RedirectToAction("view_company");
}
/*update database*/
[HttpGet]
public async Task<IActionResult> View(Guid id)
{
var company = await MVCapplication.companies.FirstOrDefaultAsync(x => x.cmp_Id == id);
if (company != null)
{
var viewModel = new UpdateCompanyViewModel()
{
cmp_Id = company.cmp_Id,
cmp_Name = company.cmp_Name,
cmp_Address = company.cmp_Address,
city = company.city,
cmp_cno = company.cmp_cno,
cmp_Email = company.cmp_Email,
};
return View(viewModel);
}
return RedirectToAction("view_company");
}
[HttpPost]
await MVCapplication.SaveChangesAsync();
return RedirectToAction("view_company");
};
return RedirectToAction("view_company");
}
}
ViewBag.TotalPages = totalPages;
ViewBag.CurrentPage = page;
if (!String.IsNullOrEmpty(SearchTxt))
{
var search_companies = await MVCapplication.companies.ToListAsync();
search_companies = MVCapplication.companies.Where(n =>
n.cmp_Name.Contains(SearchTxt)
|| n.cmp_cno.Contains(SearchTxt)
|| n.cmp_Email.Contains(SearchTxt)
|| n.city.Contains(SearchTxt)
|| n.cmp_Address.Contains(SearchTxt)).ToList();
return View(search_companies);
}
else
{
return View(companies);
}
}
--------------------design part serch--------------
/*serch*/
<div class="row">
<div class="col-md-6" asp:action="view_company" asp-controller="company">
<form class="form-horizontal">
<input type="text" name="SearchTxt" class="form-control" placeholder="Search company
Detail here.." style="max-width: 100%" />
</form>
</div>
<div class="col-md-6" >
<a href="view_company">Back To Details</a>
</div>
<br />
<br />
<br />
</div>
@*pagin*@
<div class="pagin">
<table class="table">
<tr>
@if (ViewBag.CurrentPage > 1)
{
@Html.ActionLink("<< Previous", "view_company", new { page =
ViewBag.CurrentPage - 1 })
}
</tr>
<tr>
Page @ViewBag.CurrentPage of @ViewBag.TotalPages
</tr>
<tr>
@if (ViewBag.CurrentPage < ViewBag.TotalPages)
{
@Html.ActionLink("Next >>", "view_company", new { page =
ViewBag.CurrentPage + 1 })
}
</tr>
<tr></tr>
</table>
</div>
companys = MVCapplication.companies.Distinct().ToList();
companys.Insert(0, new company { cmp_Id = Guid.NewGuid(), cmp_Name = "select" });
ViewBag.ListofCompany = companys;
employees = MVCapplication.employees.ToList();
employees.Insert(0, new employee { emp_Id = Guid.NewGuid(), emp_Name = "select" });
ViewBag.Listofemployee = employees;
return View();
}
/*[HttpPost]
public async Task<IActionResult> cmp_create(AddCompanyModel addcompanydetail)
{
};
await MVCapplication.companies.AddAsync(company1);
await MVCapplication.SaveChangesAsync();
return RedirectToAction("view_company");
}
*/
[HttpPost]
public async Task<IActionResult> add_create(AddModel addAddressdetail, company company,employee employee)
{
/*post mapping*/
if (company.cmp_Id == null)
{
ModelState.AddModelError("", "select Country");
}
// employee dropdown
if (employee.emp_Id == null)
{
ModelState.AddModelError("", "select employee");
}
};
await MVCapplication.Addresses.AddAsync(address1);
await MVCapplication.SaveChangesAsync();
return RedirectToAction("view_address");
}
@*mapping*@
<div class="form-group">
<select asp-for="Add_emp_Name"
class="form-control"
asp-items="@(new SelectList(@ViewBag.ListofEmployee,"emp_Name", "emp_Name"))">
</select>
</div>
@*mapping*@
<div class="form-group">
<select asp-for="Add_cmp_Name"
class="form-control"
asp-items="@(new SelectList(@ViewBag.ListofCompany,"cmp_Name", "cmp_Name"))">
</select>
</div>