2015-04-06 45 views
5

我正在构建简单的ASP.NET MVC网页,显示MS Dynamics CRM的所有活动帐户。刷新页面后显示旧CRM数据

如果我编译并运行(使用F5),基本上可以正常工作。当我进入Microsoft Dynamics CRM网页时,出现问题登录,然后将一个帐户状态从活动状态更改为非活动状态。现在,当我刷新正在构建的页面时,我会得到相同的旧结果。

我已尝试刷新(F5),硬刷新(Ctrl + F5),在返回视图之前配置xrm对象,但没有任何工作。所以我想我误解了一些东西。

控制器/ 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(); 
} 

查看/主页/ 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> 

编辑: 现在我注意到,经过“重建仅第一刷新运行“实际刷新网站。这是IIS Express(我在本地执行此操作)错误吗?

+0

实际上你有新的数据或旧数据? – adricadar

+0

@adricadar旧数据与查看 – mm3058

+0

相同嗯,您是否试图删除记录并查看信息是否仍然相同或更改了某些数据? – Sxntk

回答

2

在web.config中配置XRM上下文很重要。默认情况下,服务使用CachedOrganizationService实例化,顾名思义,该服务缓存所有数据。

要禁用缓存,请使用以下配置(用自己的ServiceContext替换Xrm.XrmServiceContext, Xrm):

<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> 

有关默认配置的详细信息,在MSDN检查Developer extensions context object model