Click here to Skip to main content
15,889,867 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
it is my create post of partial view

C#
[HttpPost]
       public ActionResult CreateEmployeeEmail(EmployeeEmailModel model)
       {
           #region

           AjaxResponse ajaxResponse;
           if (model.EmailTypeId.ToString() == EmailTypes.Office.GetEnumDescription() && ModelState.ContainsKey("Email"))
           {
               ModelState["Email"].Errors.Clear();
           }
           else if (model.EmailTypeId.ToString() == EmailTypes.Personal.GetEnumDescription() && ModelState.ContainsKey("OfficialEmail"))
           {
               ModelState["OfficialEmail"].Errors.Clear();
           }
           #endregion
           if (ModelState.IsValid)
           {
               var employeeModel = new EmployeeModel();
               var employee = _employeeService.GetByIdWithDetail(model.EmpId);
               if (model.EmailTypeId.ToString() == EmailTypes.Office.GetEnumDescription())
               {
                   employee.ModifiedBy = CurrentUserId;
                   employee.EmailAccountId = model.OfficialEmail;
                   _employeeService.Update(employee);
                   _employeeService.SaveChanges();
               }
               if (model.EmailTypeId.ToString() == EmailTypes.Personal.GetEnumDescription())
               {
                   var contactEmailInfoModel = new ContactEmailInfoModel();
                   var contactEmail = new ContactEmailInfo();
                   contactEmailInfoModel.ContactId = employee.ContactId;
                   contactEmailInfoModel.IsPrimary = true;
                   contactEmailInfoModel.Email = model.Email;
                   contactEmailInfoModel.Type = model.EmailTypeId.GetEnumDescription();
                   contactEmail.ObjectState = Repository.Pattern.Base.Infrastructure.ObjectState.Added;
                   contactEmailInfoModel.FillEntity(contactEmail);
                   _contactEmailInfoService.Insert(contactEmail);
                   _contactEmailInfoService.SaveChanges();
               }

               var employeewithEmailAccount = _employeeService.GetEmployeewithEmailAccountbyEmpId(model.EmpId);

               var emailEmployeelst = new List<employeeemailmodel>();
               emailEmployeelst = EmployeeEmailModel.FillModelList(_contactEmailInfoService.GetAll().ToList());
               ViewBag.EmpId = model.EmpId;

               if (employeewithEmailAccount != null && employeewithEmailAccount.EmailAccount != null)
               {
                   emailEmployeelst.Add(new EmployeeEmailModel
                   {
                       Id = employeewithEmailAccount.Id,
                       Email = employeewithEmailAccount.EmailAccount.Email,
                       Type = EmailTypes.Office.GetEnumDescription(),
                       TypeId = (int)EmailTypes.Office
                   });
               }
               var message = _contactService.PrepareErrorMessage("responds.createsuccessful");
               ajaxResponse = new AjaxResponse
               {
                   Status = AjaxStatus.Success.ToInt(),
                   Message = new List<string> { message },
                   Data = PartialViewToString("_EmployeeEmail", emailEmployeelst)
               };
               return Json(ajaxResponse, JsonRequestBehavior.AllowGet);
           }
           FillEmailsDropDowns();
           ajaxResponse = new AjaxResponse
           {
               Data = PartialViewToString("CreateEmployeeEmail", model)
           };
           return Json(ajaxResponse, JsonRequestBehavior.AllowGet);
       }


it is my main partial view get


C#
[HttpGet]
        public ActionResult EmployeeEmail(int empId)
        {
            var model = new EmployeeEmailModel();
            ViewBag.EmpId = empId;

            if ((int)model.EmailTypeId == 0)
                model.EmailTypeId = EmailTypes.Personal;

            var emailEmployeelst = new List<EmployeeEmailModel>();
            emailEmployeelst = EmployeeEmailModel.FillModelList(_contactEmailInfoService.GetAll().ToList());

            var employee = _employeeService.GetEmployeewithEmailAccountbyEmpId(empId);
            if (employee != null && employee.EmailAccount != null)
            {
                emailEmployeelst.Add(new EmployeeEmailModel
                {
                    Id = employee.Id,
                    Email = employee.EmailAccount.Email,
                    Type = EmailTypes.Office.GetEnumDescription(),
                    TypeId = (int)EmailTypes.Office
                });
            }
            return PartialView("_EmployeeEmail", emailEmployeelst);
        }

& it is the Get of this partial view


C#
[HttpGet]
     public ActionResult CreateEmployeeEmail(int empId)
     {
         var model = new EmployeeEmailModel();
         ViewBag.EmpId = model.EmpId = empId;

         AjaxResponse ajaxResponse;
         if ((int)model.EmailTypeId == 0)
             model.EmailTypeId = EmailTypes.Personal;
         FillEmailsDropDowns();
         ajaxResponse = new AjaxResponse
         {
             Data = PartialViewToString("CreateEmployeeEmail", model)
         };
         return Json(ajaxResponse, JsonRequestBehavior.AllowGet);
     }


when i successfully Created new record, the list are update in the create post last stage

but it is  not showing in the main grid after the new record untill i refresh the page. What should to i do? to display the new record? is there any redirect issue ?

The image of Solution Files is

https://postimg.org/image/jsmmtrdw9/


What I have tried:

After many rectification but failed till. Added
I changed the partial view name like from '_EmployeeEmail.cshtml' to
'EmployeeEmail.cshtml' but it will not work.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900