2013-10-15 1 views
0

데이터 행을 표시하는 인덱스 페이지가 있습니다. 행을 편집하려면 Edit ActionResult가 실행되고 편집 할 데이터가 표시됩니다. 그런 다음 변경 사항을 적용하고 HttpPost ActionResult가 실행되고 데이터가 저장됩니다.MVC 4 두 번째 시간에 ActionResult가 실행되지 않습니다.

인덱스 페이지로 돌아가서 저장된 변경 사항을 볼 수 있지만 데이터를 다시 편집하려고하면 Edit ActionResult가 실행되지 않고 F5를 누르면 원래의 데이터가 표시되고 다음에 이전 데이터가 표시됩니다. ActionResult를 편집하면 dat이 새로 고쳐집니다.

하드 새로 고침을하지 않고도 매번 ActionResult가 실행되는지 확인할 수 있습니까?

감사합니다. HttpPost AtionResult 다음

[CustomAuthorizePDG] 
    public ActionResult Edit(int id = 0) 
    { 
     var model = this._db.ProductApprovals_ProductApproval.Find(id); 
     if (model == null) { 
      return HttpNotFound(); 
     } 
     var spServer = ConfigurationManager.ConnectionStrings["SPServer"].ConnectionString; 
     ViewBag.ProductStatusId = new SelectList(this._db.ProductApprovals_ProductStatus, "ProductStatusId", "ProductStatus", model.ProductStatusId); 
     return View(model); 
    } 

과 : 그래서

[CustomAuthorizePDG] 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    [ErrorHandler] 
    public ActionResult Edit(ProductApprovals_ProductApproval model, HttpPostedFileBase file) 
    { 
     if (ModelState.IsValid) { 
       if (file != null && file.ContentLength > 0) { 
        var sp = new ProductApprovalDataContext(new Uri("http://sp-appcentral-int/ProductApproval/_vti_bin/ListData.svc")) 
        { 
         Credentials = CredentialCache.DefaultNetworkCredentials 
        }; 

        var productApprovalForm = sp.ProductApprovalForm.Where(x => x.ProductApprovalId == model.ProductApprovalId.ToString(CultureInfo.InvariantCulture)).FirstOrDefault(); 

        if (productApprovalForm != null) { 
         var fileName = Path.GetFileName(file.FileName); 
         var extension = Path.GetExtension(file.FileName); 
         var name = string.Format("{0}{1}", model.ProductApprovalId, extension); 
         var path = string.Format("/ProductApproval/Product Approval Form/{0}", name); 
         var contentType = extension == "docx" ? "application/vnd.openxmlformats-officedocument.wordprocessingml.document" : "application/msword"; 

         productApprovalForm.CheckedOutTo = new UserInformationListItem 
         { 
          UserName = User.Identity.Name 
         }; 
         productApprovalForm.Title = fileName; 
         sp.SetSaveStream(productApprovalForm, file.InputStream, false, contentType, path); 
         sp.SaveChanges(SaveChangesOptions.ReplaceOnUpdate); 

         this.UpdateProductApprovalWithDocument(model, path, fileName); 
        } 
       } 

       this._db.Entry(model).State = EntityState.Modified; 
       this._db.SaveChanges(); 

      return RedirectToAction("Index"); 
     } 

     ViewBag.ProductStatusId = new SelectList(this._db.ProductApprovals_ProductStatus, "ProductStatusId", "ProductStatus", model.ProductStatusId); 

     return View(model); 
    } 

의 HttpPost 편집이 성공적으로 변경 사항을 저장 해고하고 그들이에 표시됩니다 여기

는 컨트롤러의 편집 ActionResult입니다 인덱스 뷰. 그런 다음 ActionResult 편집으로 돌아 가면 새로 고침을 수행 할 때까지 초기 값이 표시됩니다. 코드에 중단 점을 넣고 두 번째로 F5를 누르기 전까지 Edit ActionResult가 실행되지 않습니다 ...

+1

코드는 어디에 있습니까? 나는 아무도 코드없이 당신을 도울 수 있다고 생각합니다 ... – MRB

답변

0

HttpPost 편집 작업에서 RedirectToAction을 인덱스로 다시 보내고 있는지 확인하십시오 동작. 문제 설명을 작성하면 편집 작업에서 편집보기 저장을 표시하는 것 같습니다. 색인 작업으로 다시 리디렉션 할 수 있습니다.

여전히 작동하지 않으면 색인보기의 HTML 소스를 검사하여 편집 URL이 여전히 편집 작업 방법을 참조하는지 확인하십시오.

관련 문제