2012-07-09 45 views
0

我有我的項目使用MVC,我有我的控制器實例化服務,服務管理存儲庫,並在存儲庫中進行CRUD操作。問題是,一旦我使用服務中的數據填充了我的網格控件(Telerik),如果我進行更新並刷新數據,則會顯示舊數據而不是新數據。我認爲這是我的上下文變量的持久性問題,需要處理/實例化,但不確定何時何地(Unit Of Work變量位於服務中)。什麼時候我必須處理我的上下文

<HttpPost()> 
    <GridAction()> 
    Function Edit(id As Integer, name As String, clientNo As String, image As String, unit As String) As ActionResult 
     Try 
      Dim org = Me._orgService.GetOrgById(id) 

      With org 
       .orgNAME = name 
       .orgCLIENTNO = clientNo 
       .orgIMAGE = image 
       .orgUNIT = unit 
      End With 

      TryUpdateModel(org) 
      Me._orgService.EditOrg(org) 
     Catch ex As Exception 
      'Log the error 
      ModelState.AddModelError("", MS_UNABLE_SAVE_CHANGES) 
      Response.StatusCode = 500 
      Return Content(String.Join("", (From state In ModelState Select state).SelectMany(Function(s) s.Value.Errors).Select(Function(e) e.ErrorMessage).ToArray())) 
     End Try 

     Return View(New GridModel(All())) 

    End Function 

這是服務

Public Sub EditOrg(org As hdmtORG) Implements IOrgService.EditOrg 
     Me._context.OrgRepository.Edit(org) 
     Save() 
    End Sub 

這是庫(通用)

Public Overridable Sub Update(entity As TEntity) Implements IEntityRepository(Of TEntity).Edit 
     Me._objectSet.Context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified) 
    End Sub 

任何想法?

非常感謝。

回答

1

嘗試使用<OutputCache(Duration:=0)> _

<OutputCache(Duration:=0)> 
<HttpPost()> 
    <GridAction()> 
    Function Edit(id As Integer, name As String, clientNo As String, image As String, unit As String) As ActionResult 
+0

對不起Jitendra但有點測試它不工作,以後如果我刷新數據則顯示舊/新的價值,而不僅僅是新的。任何其他想法? – Scheveningen 2012-07-10 14:09:46

+0

你能告訴我你在測試哪個瀏覽器嗎?除IE外,其他瀏覽器不會緩存數據,而是明確寫入代碼。 – 2012-07-13 09:19:43

相關問題