2010-07-09 49 views
9

我正在使用MVC2和VS2010開發一個網站,並且需要使用Application State全局值。我可以設置一個值,如'Application [「hits」] = 0;'在Global.asax中卻試圖用同樣的在MVC控制器總是收到以下錯誤時:HttpApplicationState在MVC控制器中不可用

名稱「應用」不會在目前情況下

存在我還使用了全球試過。 ASAX爲了定義一個全局變量,但它觸發以下錯誤:

命名空間不能直接包含成員如字段或方法

我正在尋找一種方式來定義可用的全球應用程序狀態值在我的MVC2 Web應用程序的所有控制器中。我省略了什麼嗎?我的控制器看起來像這樣:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MVCApplication.Controllers 
{ 
    [HandleError] 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      Application["hits"] += 1; 

      ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
      return View(); 
     } 

    } 
} 

我欣賞任何解決方案和/或建議。

感謝 邁赫達德

+0

http://stackoverflow.com/questions/2266533/does-asp-net-mvc-have-application-variables – David 2010-07-09 14:34:26

回答

10

認爲,在MVC3您可以通過

獲得訪問一個實際的HttpApplicationState對象
HttpContext.ApplicationInstance 

財產。那就是:

HttpApplicationState application = HttpContext.ApplicationInstance.Application 
0

你可以使用一個靜態類,其內部字典和索引。

另外,你有沒有試過HttpContext.Current.Application

+0

謝謝雅羅斯拉夫,這個問題可以用在控制器下面現在問題解決了: HttpContext.Application [「hits」] – Mehrdad 2010-07-09 15:02:06

2

在ASP.NET MVC2,我使用

HttpContext.Application["foo"] = "bar"; 

,並獲得

HttpContext.Application["foo"]