2012-06-26 115 views
1

我在Razor视图引擎MVC3一起使用的jqGrid结合下拉列,在jqGrid的我有一个下拉列,我加载下拉像...问题在jqGrid的

colModel: [{ 
    name: 'Company', 
    index: 'Company', 
    width: 200, 
    editable: true, 
    edittype: 'select', 
    editoptions: { 
     dataUrl: '@Url.Action("PopulateDropdown", "ControllerName")' 
    }] 

如果我有100行那么控制器动作被称为100次。因此我在我的控制器中使用了[OutputCache(Duration = 10, VaryByParam = "none", VaryByCustom = "Browser")]

请提出任何其他想法,以便下拉列表项在视图中仅获取一次,并使用相同的方式绑定其余部分。

+0

请问你的看法样子的'PopulateDropdown'行动? – nemesv

回答

1

它有100行,你不需要一次编辑所有的行。通常可以使用内联编辑或表单编辑来编辑一个指定的行。然后通过按输入并选择另一行来保存该行。因此只有一行将被编辑,而其他所有行将在相应的单元格中显示一些文本。

在另一边,如果你真的需要缓存从'@Url.Action("PopulateDropdown", "ControllerName")'服务器的响应,你可以直接在JSON响应的HTTP标头中设置Cache-Control: max-age=60

Response.CacheSetMaxAge (new TimeSpan (0, 1, 0)); // cache for 1 minute