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

何か案が?

本当にありがとう。

4

1 に答える 1

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
于 2012-07-09T11:11:00.053 に答える