1

我在 razor 视图引擎中使用 jqgrid 和 MVC3,在 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")]在 mycontroller 中使用。

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

4

1 回答 1

1

如果您有 100 行,则不需要一次编辑所有行。通常使用内联编辑或表单编辑来编辑一个指定的行。然后通过按下Enter并选择另一行来保存该行。所以只有一行将被编辑,所有其他行将在相应的单元格中只有一些文本。

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

Response.CacheSetMaxAge (new TimeSpan (0, 1, 0)); // cache for 1 minute
于 2012-06-26T16:32:26.143 回答