2017-03-01 61 views
1

我正在使用下面的代碼來呈現頁面並將輸出存儲在緩存中。所以,在接下來的請求的頁面來自緩存(減少處理時間)無法將對象轉換回System.web.webpages.HelperResult

HelperResult renderPageResult = null; 
     try 
     { 
      if (objCache.Get(new CacheService().GetKey(cacheKey, _userContext)) == null) 
      { 
       renderPageResult = RenderPage(path, data); 
       objCache.Add(new CacheService().GetKey(cacheKey, _userContext), renderPageResult); 
      } 
      else 
      { 
       renderPageResult = objCache.Get<HelperResult>(new CacheService().GetKey(cacheKey, _userContext)); 
      } 

      return renderPageResult; 
     } 
     catch(Exception ex) 

當轉換對象回HelperResult我收到沒有得到HTML字符串和UI提示以下例外

價值不在預期範圍內。

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.ArgumentException:值不在預期範圍內。

+0

哪行代碼拋出異常解決了嗎? –

+0

有沒有例外,但不是html字符串我得到的是對象 –

+0

如果我正確理解你的問題'objCache.Get'方法返回對象,而不是'HelperResult'類的對象。當你試圖在UI中渲染它時,你會看到異常。糾正我,如果我錯了?你能提供一些你想要達到的內容嗎?你在哪裏使用'HelperResult'的對象? –

回答

0

使用下面的代碼

return new HelperResult 
       (
        writer => 
        { 
         writer.Write(renderPageContent); 
        } 
      );