2012-06-26 111 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