我正在构建一个简单的ASP.NET MVC
网页,其中显示了MS Dynamics 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>
修改 现在我注意到只有在&#34; Rebuild and Run&#34;实际刷新网站。这个IIS Express(我在本地这样做)是错吗?
答案 0 :(得分:2)
在web.config中为XRM上下文配置的内容非常重要。默认情况下,使用CachedOrganizationService
实例化服务,顾名思义,它会缓存所有数据。
要禁用缓存,请使用以下配置(将Xrm.XrmServiceContext, Xrm
替换为您自己的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>
有关默认配置的详细信息,请查看MSDN上的Developer extensions context object model。