2015-01-22 2 views
0

TempData를 사용하여 컨트롤러간에 데이터를 전달했습니다. 두 명의 사용자가 같은 페이지에서 작업하는 경우 User2는 User1에 의해 생성 된 tempdata 값을 가져옵니다.Asp.net MVC TempData 교차/혼합 위로

아래에서 코드를 찾을 수 있습니다.

이 문제를 해결할 수 있도록 도와주세요.

VDRController.cs

public ActionResult RedirectToCDR(long VslMoveId, long VslVisitId, string VslNm, string ETDDtTmLoc, string statusCd) 
    { 
     //List<long> vslIds = new List<long>(); 
     string vslIds = VslMoveId + "," + VslVisitId.ToString() + "," + statusCd; 
     TempData["VslMoveDetails"] = vslIds; 
     //DateTime MyDateTime; 
     //MyDateTime = new DateTime(); 
     var strdatetime = Convert.ToDateTime(ETDDtTmLoc).ToString("dd-MMM-yyyy"); 
     TempData["VslNameETD"] = VslNm + " " + strdatetime; 
     //return RedirectToAction("Index","VesselVisit"); 
     return Json(Url.Action("Index", "CDR")); 

    } 

CDRController.cs

public ActionResult Index() 
    { 

     if (TempData["VslMoveDetails"] != null) 
     { 
      string vslIds = TempData["VslMoveDetails"].ToString(); 
      string[] Ids = vslIds.Split(new char[] { ',' }); 
      if (Ids.Length == 3 && Ids[0] != null && Ids[1] != null) 
      { 
       ViewBag.VslMove_Id = Ids[0]; 
       ViewBag.VslVisit_Id = Ids[1]; 
       ViewBag.VisitStatus_Cd = Ids[2]; 
      } 
     } 
     return View(); 
    } 

사전에 감사합니다.

+0

당신이 무엇을 요구하고 있는지 확실하지 않습니다. 사용자간에 데이터를 공유하려고합니까? 아니면 데이터가 공유 될지 걱정됩니까? – Jasen

+1

TempData는 사용자 지정 TempDataProvider가없고 특정 사용자 세션 ID에 바인딩되어 있지 않으면 TempData가 해당 저장소로 Session을 사용하기 때문에 불가능합니다. 탭에서 세션 데이터를 공유하기 때문에 브라우저의 다른 탭을 열고 tempdata를 볼 수 있습니다. –

답변

0

페이지가 IIS에 의해 캐시되고 있습니다. MVC 응용 프로그램의 경우 캐시 할 수없는 파일 확장명 목록에 .cshtml을 추가해야합니다. 캐싱을 중지하는 솔루션은 다음 링크를 참조하십시오. (http://lionsden.co.il/codeden/?p=446)

관련 문제