2011-02-28 52 views
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcApplication3.Controllers 
{ 

    public class HomeController : Controller 
    { 
     [OutputCache(Duration=10)] 
     public string Index() 
     { 

      return DateTime.Now.ToString("T"); 


     } 

     public ActionResult About() 
     { 
      return View(); 
     } 
    } 
} 

我只是嘗試在asp.net mvc2中顯示時間。但是當我運行上面的程序時,它會給出以下例外,請你告訴我什麼是錯的?在asp.net中顯示時間?

'/'應用程序中的服務器錯誤。 指令或配置設置配置文件必須指定'varyByParam'屬性。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.Web.HttpException:指令或配置設置配置文件必須指定'varyByParam'屬性。

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

回答

0

隨着錯誤消息指出您需要指定緩存VaryByParam屬性你使用:

[OutputCache(Duration = 10, VaryByParam = "none")] 
public string Index() 
{ 
    return DateTime.Now.ToString("T"); 
} 

而且控制器動作通常應該返回ActionResults而不是字符串:

[OutputCache(Duration = 10, VaryByParam = "none")] 
public ActionResult Index() 
{ 
    return Content(DateTime.Now.ToString("T"), "text/plain"); 
} 
0

建議行動方法返回ActionResult所以我建議你試試這個。

[OutputCache(Duration = 10, VaryByParam="none")] 
public ActionResult Temp() 
{ 
    return Content(DateTime.Now.ToString("T")); 
} 

或者如果您只是想爲您的代碼段修復,請嘗試此操作。

[OutputCache(Duration = 10, VaryByParam="none")] 
public string Temp() 
{ 
    return DateTime.Now.ToString("T"); 
}