2015-04-06 13 views
5

Sto costruendo una semplice pagina web ASP.NET MVC che mostra tutti gli account attivi da MS Dynamics CRM.I vecchi dati CRM vengono visualizzati dopo l'aggiornamento della pagina

Fondamentalmente la pagina funziona bene se la compilo ed eseguo (con F5). Il problema viene visualizzato quando si accede alla pagina Web di Microsoft Dynamics CRM, si effettua l'accesso e si modifica lo stato di un account da attivo a inattivo. Ora quando aggiorno la pagina che sto costruendo, ottengo gli stessi vecchi risultati.

Ho provato l'aggiornamento (F5), l'hard refreshing (Ctrl + F5), lo smaltimento dell'oggetto xrm prima di restituire la vista, ma non ha funzionato. Quindi penso di aver frainteso qualcosa.

Controller/HomeControler.cs

public ActionResult Index() 
{ 
    using (var xrm = new XrmServiceContext("Xrm")) 
    { 
     var accounts = from a in xrm.AccountSet 
         where a.StateCode == 0 
         select a; 

     List<AccountModel> accountModels = new List<AccountModel>(); 

     foreach (var account in accounts) 
     { 
      Debug.WriteLine(c+"\t"+account.Id+"\t"+account.Name); 
      Debug.WriteLine(account.Address1_Composite); 
      accountModels.Add(new AccountModel(
       account.Id.ToString(), 
       account.Name, 
       account.Address1_Composite)); 
     } 

     ViewBag.Title = "Page Title"; 
     ViewBag.AccountModels = accountModels; 
    } 
    return View(); 
} 

Vista/Home/Index.cshtml

@{ 
    Layout = @"~/Views/Shared/_Layout.cshtml"; 
} 

<div class="table-responsive"> 
    <table class="table table-bordered table-condensed table-hover"> 
     <caption><h2>Active Accounts</h2></caption> 
     <thead> 
      <tr> 
       <th>Account ID</th> 
       <th>Account Name</th> 
       <th>Account Address</th> 
      </tr> 
     </thead> 
     <tbody> 
      @{ 
       foreach (var accountModel in ViewBag.AccountModels) 
       { 
        <tr> 
         <td>@accountModel.Id</td> 
         <td>@accountModel.Name</td> 
         <td>@accountModel.Address</td> 
        </tr> 
       } 
      } 
     </tbody> 
    </table> 
</div> 

EDIT: Ora ho notato che solo il primo aggiornamento dopo "Ricostruire e Esegui "effettivamente aggiorna il sito. Questo errore di IIS Express (lo sto facendo localmente)?

+0

In azione hai nuovi dati o vecchi dati come in vista? – adricadar

+0

@adricadar Dati vecchi come nella vista – mm3058

+0

Hmmm, hai provato a cancellare il record e vedere se le informazioni sono uguali o modificare alcuni dati? – Sxntk

risposta

2

È importante ciò che è stato configurato in web.config per il contesto XRM. Per impostazione predefinita, il servizio viene istanziato utilizzando lo CachedOrganizationService, che, come suggerisce il nome, memorizza nella cache tutti i dati.

Per disattivare la memorizzazione nella cache, utilizzare la seguente configurazione (che sostituisce il Xrm.XrmServiceContext, Xrm con il proprio ServiceContext):

<microsoft.xrm.client> 
    <contexts> 
    <!-- Replace with your actual ServiceContext --> 
    <add name="Xrm" type="Xrm.XrmServiceContext, Xrm" serviceName="Xrm" instanceMode="PerRequest"/> 
    </contexts> 
    <services> 
    <!-- Disable cache --> 
    <add name="Xrm" type="Microsoft.Xrm.Client.Services.OrganizationService, Microsoft.Xrm.Client"/> 
    </services> 
</microsoft.xrm.client> 

Per ulteriori informazioni sulla configurazione di default, controllare Developer extensions context object model su MSDN.

Problemi correlati