افزودن و ویرایش و حذف با AngularJs در MVC
شنبه 18 مهر 1394در این مقاله قصد داریم افزودن و ویرایش و حذف یک رکورد را در Asp.Net MVC با استفاده از AngularJs آموزش دهیم این مثال عملی برای شما در مورد Angular هم توضیح خواهد داد.
مرحله اول:ابتدا شما یک پروژه ی جدید MVC می سازید،به صورت تصویر زیر:
مرحله دوم:Basic را انتخاب نمایید.
مرحله سوم:به آدرس زیر بروید و Package مورد نطر را دانلود کنید.
View => Other Windows => Package Manager Console
مرحله چهارم:نیاز به نصب Package زیر هم است:
مرحله پنجم:همان طور که می دانید ما در MVC، یک Model داریم بنابر این یک جدول به نام Employee می سازید و یک کلید اصلی با خاصیت Identity به نام ID تنظیم می نمایید.
یک NewEntityDataModel را اضافه می کنید.
نام DataBase را از داخل DropDownList انتخاب کنید.
مرحله ششم:یک Controller جدید به نام HomeController می سازید.
متد زیر را به HomeController اضافه می کنید.
public ActionResult Index() { return View(); } public JsonResult getAll() { using (SampleDBEntities dataContext = new SampleDBEntities()) { var employeeList = dataContext.Employees.ToList(); return Json(employeeList, JsonRequestBehavior.AllowGet); } } public JsonResult getEmployeeByNo(string EmpNo) { using (SampleDBEntities dataContext = new SampleDBEntities()) { int no = Convert.ToInt32(EmpNo); var employeeList = dataContext.Employees.Find(no); return Json(employeeList, JsonRequestBehavior.AllowGet); } } public string UpdateEmployee(Employee Emp) { if (Emp != null) { using (SampleDBEntities dataContext = new SampleDBEntities()) { int no = Convert.ToInt32(Emp.Id); var employeeList = dataContext.Employees.Where(x => x.Id == no).FirstOrDefault(); employeeList.name = Emp.name; employeeList.mobil_no = Emp.mobil_no; employeeList.email = Emp.email; dataContext.SaveChanges(); return "اطلاعات به روز رسانی شد"; } } else { return "کارمند مورد نظر موجود نیست"; } } public string AddEmployee(Employee Emp) { if (Emp != null) { using (SampleDBEntities dataContext = new SampleDBEntities()) { dataContext.Employees.Add(Emp); dataContext.SaveChanges(); return "کارمند مورد نظر اضافه شد"; } } else { return "کارمند مورد نظر موجود نیست"; } } public string DeleteEmployee(string employeeId) { if (employeeId != null) { using (SampleDBEntities dataContext = new SampleDBEntities()) { int no = Convert.ToInt32(employeeId); var employeeList = dataContext.Employees.Where(x => x.Id == no).FirstOrDefault(); dataContext.Employees.Remove(employeeList); dataContext.SaveChanges(); return "کارمند مورد نظر حذف شد"; } } else { return "کارمند مورد نظر موجود نیست"; } }
متد getAll:این متد تمام اطلاعات کارمندان را به فرمت Json برمی گرداند.
متد getEmployeeByNo:این متد جزییات کارمندان با شماره کارمندی آن ها را بر می گرداند.
متد UpdateEmployee:این متد جزییات اطلاعات کارمندان را به روز رسانی می کند.
متد AddEmployee:این متد اطلاعات یک کارمند جدید را یه جدول پایگاه داده مان اضافه می کند.
متد DeleteEmployee:این متد اطلاعات یک کارمند را حذف می کند.
حال یک View به Controller خود اضافه کنید:
روی Index راست کلیک کرده و یک View را اضافه کنید.
داخل صفحه ی Index دستور زیر را می نویسید:
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <body dir="rtl"> <div ng-controller="myCntrl"> <h1> صفحه اطلاعات کارمندان</h1> <br /> <input type="button" class="btnAdd" value=" Add Employee" ng-click="AddEmployeeDiv()" /> <div class="divList"> <p class="divHead">لیست کارمندان</p> <table cellpadding="12" class="table table-bordered table-hover"> <tr> <td><b>شماره کارمندی</b></td> <td><b>نام</b></td> <td><b>ایمیل</b></td> <td><b>سن</b></td> <td><b>عملیات</b></td> </tr> <tr ng-repeat="employee in employees"> <td> {{employee.Id}} </td> <td> {{employee.name}} </td> <td> {{employee.email}} </td> <td> {{employee.Age}} </td> <td> <span ng-click="editEmployee(employee)" class="btnAdd">ویرایش</span> <span ng-click="deleteEmployee(employee)" class="btnRed">حذف</span> </td> </tr> </table> </div> <div ng-show="divEmployee"> <p class="divHead">{{Action}} Employee</p> <table> <tr> <td><b>شماره کارمندی</b></td> <td> <input type="text" disabled="disabled" ng-model="employeeId" /> </td> </tr> <tr> <td><b>نام</b></td> <td> <input type="text" ng-model="employeeName" /> </td> </tr> <tr> <td><b>ایمیل</b></td> <td> <input type="text" ng-model="employeeEmail" /> </td> </tr> <tr> <td><b>سن</b></td> <td> <input type="text" ng-model="employeeAge" /> </td> </tr> <tr> <td colspan="2"> <input type="button" class="btnAdd" value="ثبت" ng-click="AddUpdateEmployee()" /> </td> </tr> </table> </div> </div> </body>
یک Folder جدید می سازید به نام Angular و سه فایل javascript زیر را اضافه می کنید.
1-Module.js:
var app = angular.module("MyApp", []);
2-Service.js:
app.service("myService", function($http) { //get All Eployee this.getEmployees = function() { debugger; return $http.get("Home/GetAll"); }; // get Employee By Id this.getEmployee = function(employeeID) { var response = $http({ method: "post", url: "Home/getEmployeeByNo", params: { id: JSON.stringify(employeeID) } }); return response; } // Update Employee this.updateEmp = function(employee) { var response = $http({ method: "post", url: "Home/UpdateEmployee", data: JSON.stringify(employee), dataType: "json" }); return response; } // Add Employee this.AddEmp = function(employee) { var response = $http({ method: "post", url: "Home/AddEmployee", data: JSON.stringify(employee), dataType: "json" }); return response; } //Delete Employee this.DeleteEmp = function(employeeId) { var response = $http({ method: "post", url: "Home/DeleteEmployee", params: { employeeId: JSON.stringify(employeeId) } }); return response; } });
3-Controller.js:
app.controller("myCntrl", function ($scope, myService) { $scope.divEmployee = false; GetAllEmployee(); //To Get All Records function GetAllEmployee() { debugger; var getData = myService.getEmployees(); debugger; getData.then(function (emp) { $scope.employees = emp.data; }, function () { alert('خطا'); }); } $scope.editEmployee = function (employee) { debugger; var getData = myService.getEmployee(employee.Id); getData.then(function (emp) { $scope.employee = emp.data; $scope.employeeId = employee.Id; $scope.employeeName = employee.name; $scope.employeeEmail = employee.email; $scope.employeeAge = employee.Age; $scope.Action = "Update"; $scope.divEmployee = true; }, function () { alert('خطا'); }); } $scope.AddUpdateEmployee = function () { debugger; var Employee = { Name: $scope.employeeName, Email: $scope.employeeEmail, Age: $scope.employeeAge }; var getAction = $scope.Action; if (getAction == "Update") { Employee.Id = $scope.employeeId; var getData = myService.updateEmp(Employee); getData.then(function (msg) { GetAllEmployee(); alert(msg.data); $scope.divEmployee = false; }, function () { alert('خطا'); }); } else { var getData = myService.AddEmp(Employee); getData.then(function (msg) { GetAllEmployee(); alert(msg.data); $scope.divEmployee = false; }, function () { alert('خطا'); }); } } $scope.AddEmployeeDiv = function () { ClearFields(); $scope.Action = "Add"; $scope.divEmployee = true; } $scope.deleteEmployee = function (employee) { var getData = myService.DeleteEmp(employee.Id); getData.then(function (msg) { GetAllEmployee(); alert('کارمند مورد نظر حذف شد'); }, function () { alert('خطا'); }); } function ClearFields() { $scope.employeeId = ""; $scope.employeeName = ""; $scope.employeeEmail = ""; $scope.employeeAge = ""; } });
مرحله آخر :صدا زدن AngularJs است، که یک View به نام layout می سازید و کد زیر را قرار می دهید.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>@ViewBag.Title</title> <script src="~/Scripts/angular.min.js"></script> <script src="~/Content/Angular/Controller.js"></script> <script src="~/Content/Angular/Service.js"></script> <script src="~/Content/Angular/Module.js"></script> @Styles.Render("~/Content/css") <style> </style> </head> <body> @RenderBody() @Scripts.Render("~/bundles/jquery") @RenderSection("scripts", required: false) </body> </html>
وقتی برنامه را اجرا بگیرید خروجی به شکل زیر خواهد بود:
برای افزودن کاربر خروجی به صورت تصاویر زیر خواهد بود:
وقتی کاربر دکمه ی ویرایش را بزنید خروجی به صورت زیر خواهد بود:
وقتی کاربر دکمه ی حذف را بزند خروجی به صورت زیر خواهد بود:
- ASP.net MVC
- 2k بازدید
- 2 تشکر