【发布时间】:2011-04-12 00:38:56
【问题描述】:
我遇到了一个奇怪的缓存问题,我认为这可能与我使用实体数据模型作为数据源这一事实有关。
问题是我可以直接更新数据库,并且在我重新发布项目之前它不会反映在实际站点上。在本地查看项目时,数据确实显示正常。
奇怪的是它只在前端不正确。如果我通过 CMS 查看记录,它会正确显示。
一些源代码:
// *** CMS CONTROLLER ***
[HandleError]
public class SiteManagerController : Controller
{
static DataModel DB = new DataModel();
// via CMS Controller
// CMS - Get the data *** PULLS DATA CORRECTLY
public ActionResult Content()
{
List<SiteContent> viewData = DB.SiteContents.OrderBy(c => c.Title).ToList();
return View(viewData);
}
// via CMS Controller
// CMS - Update logic
[HttpPost]
[ValidateInput(false)]
public ActionResult ContentEdit(int ID, FormCollection formValues)
{
SiteContent siteContent = DB.SiteContents.Single(c => c.ID == ID);
try
{
UpdateModel<SiteContent>(siteContent);
DB.SaveChanges();
return RedirectToAction("Content");
}
catch
{
throw;
}
}
}
// *** HOME CONTROLLER ***
[HandleError]
public class HomeController : Controller
{
static DataModel DB = new DataModel();
[System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult Index(string strSlug)
{
data = DietCenterDB.SiteContents.Single(c => c.Slug == strSlug);
return View(data);
}
}
* 更新 * 似乎存在与此问题相关的某种定时延迟。如果我更新 CMS/数据库,15-20 分钟后一切正常。可能是一些与前端数据访问相关的对象需要超时或过期才能抓取新的内容?
* 更新 #2 * 似乎只有 varchar/text 字段没有正确更新。如果我更改一个 int 字段,它会正确更新,并且每个页面上的信息都会更改。
【问题讨论】:
标签: .net model asp.net-mvc-2 entity