У меня странная проблема с кэшированием, и я считаю, что это может быть связано с тем, что я использую модель данных сущностей в качестве источника данных.
Проблема заключается в том, что я могу обновить базу данных напрямую иэто не отражается на реальном сайте, пока я не опубликую проект.Данные отображаются правильно при локальном просмотре проекта.
Странно то, что они некорректны только во внешнем интерфейсе.Если я просматриваю запись через 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, оно корректно обновляется, и информация меняется на каждой странице.