我正在使用MVC2和VS2010开发网站,需要使用Application State全局值。我可以设置一个像'Application [“hits”] = 0;'的值在Global.asax中但是当尝试在MVC控制器中使用相同时,总是会出现以下错误:
当前上下文中不存在名称“应用程序”
我也尝试在Global.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 :(得分:10)
我认为在MVC3中你可以通过
访问实际的HttpApplicationState对象HttpContext.ApplicationInstance
属性。那就是:
HttpApplicationState application = HttpContext.ApplicationInstance.Application
答案 1 :(得分:2)
在ASP.NET MVC2中,我使用
HttpContext.Application["foo"] = "bar";
并获得
HttpContext.Application["foo"]
答案 2 :(得分:0)
您可以使用带有内部字典和索引器的静态类。
另外,您尝试过HttpContext.Current.Application
吗?