【问题标题】:recovering from missing session state in ASP.NET MVC with Telerik Ajax使用 Telerik Ajax 从 ASP.NET MVC 中丢失的会话状态中恢复
【发布时间】:2011-02-14 19:16:09
【问题描述】:

我有一个网页,其中包含 ajax 模式的 Telerik 网格。网格的数据在用于为视图提供服务的控制器操作中构建,然后存储在会话中。 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 控制器将回传到 _EISelect 以填充其网格

  // Ajax Actions for EditImage
    [GridAction]
    public ActionResult _EISelect()
    {
        var vmie = (VMImageEdit) Session["vmie"];
        return View(new GridModel(vmie.Colours));
    }

因此,如果我的会话对象为空,我该如何恢复 - 我想我需要来自原始 EditImage 调用的 productModelId 和 Revision 参数。它们是否以任何方式在 _EISelect 中可用 - 它已发布到,并且该帖子不包含任何有用的内容。

哦,让这可能更难,这个页面将通过内嵌框架显示。

【问题讨论】:

    标签: asp.net asp.net-mvc session asp.net-mvc-3 telerik


    【解决方案1】:

    答案在于 Telerik ajax 数据绑定 - 这可用于在查询字符串中传递任意数据

    .Select("_EISelect", "AdminProduct", new { productModelId = Model.ProductModelId, revision = Model.Revision})
    

    可以在_EISelect中作为参数恢复。简单。

    【讨论】:

      猜你喜欢
      • 2021-03-03
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      相关资源
      最近更新 更多