У меня есть веб-страница, которая включает в себя сетку Telerik в режиме AJAX. Данные для сетки создаются в действии контроллера, используемом для обслуживания представления, а затем сохраняются в сеансе. 90% времени доступно для метода ajax, используемого для заполнения сетки. И иногда его нет, что странно. Какое-то состояние гонки?
public ActionResult EditImage(int productModelId, int revision)
{
ViewBag.Current = "Edit";
//Unit of work and repo generation removed from brevity
var modelToEdit = prodModelRepo.Where(p => p.ProductModelID == productModelId && p.Revision == revision).FirstOrDefault();
var vmie = new VMImageEdit(modelToEdit)
{
//init some other stuff
};
Session["vmie"] = vmie;
return View(vmie);
}
Теперь telerik contorol отправит сообщение обратно в _EISelect, чтобы заполнить его сетку
// Ajax Actions for EditImage
[GridAction]
public ActionResult _EISelect()
{
var vmie = (VMImageEdit) Session["vmie"];
return View(new GridModel(vmie.Colours));
}
Так что, если мой объект сеанса пуст, как я могу восстановить - я думаю, мне нужны параметры productModelId и Revision из исходного вызова EditImage. Доступны ли они в _EISelect каким-либо образом - он опубликован, а в сообщении нет ничего полезного.
О, чтобы сделать это возможно сложнее, эта страница будет отображаться через встроенную рамку.