关于C#的Attribute
本帖最后由 top8843 于 2013-03-10 22:54:19 编辑 在网上看了很多关于Attribute的资料,却发现用Attribute完成一个简单的功能都做不到,比如,我就想在Attribute中创建一个Session,请问怎么做呢?
下面是我想当然的代码,请指教
using System;
using System.Web;
namespace Test
{
public class AbcAttribute : Attribute
{
public AbcAttribute()
{
HttpContext.Current.Session["abc"] = "vvv";
}
}
}
我用的是ASP.NET MVC,将这个特性加在控制器的方法上
namespace Test.Controllers
{
public class HomeController : Controller
{
[Abc()]
public ActionResult Index()
{
return View();
}
}
}
然后在视图中,企图输出这个Session,却没有结果
[解决办法]
class SessionAttribute : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Session["abc"] = "vvv";
base.OnActionExecuting(filterContext);
}
}