Tag: actionfilterattribute

MVC Action Filter使用传递给for ActionResult的参数?

我创建了一个没有问题的自定义Action Filter 。 但我想修改Action Filter以使用实际传递给我的方法的一些参数。 所以,如果我有以下方法: [HttpPost] [MyAttribute] public ActionResult ViewUserDetails(Guid userId) { // Do something } 如何从MyAttribute访问userId? 有没有办法可以直接传递它?

Autofac属性注入在属性上失败

我已经找到了一些问题,但是他们倾向于指出我正在遵循的确切文档……但它仍然没有用。 我正在构建一个相当简单的ASP.NET MVC 4站点,计划是使用基于ActionFilterAttribute的日志记录。 我有一个DataAccessProvider类,它打开与数据库的事务并提供工作单元实例,我试图将它注入filter属性。 文档说只需调用RegisterFilterProvider()就足够了,并确保注册相关类型。 它特别说没有必要注册属性,但我已经尝试了有无。 我的代码目前看起来像这样: var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.Register(x => new EntityAccessProvider()) .As() .InstancePerHttpRequest(); builder.RegisterType().PropertiesAutowired(); // ^ I’ve tried it with and without this line builder.RegisterFilterProvider(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 然后,文档中的示例只是在filter上放置一个属性,所以我做了同样的事情: public class DebugLogAttribute : ActionFilterAttribute { private IDataAccessProvider DataAccess { get; set; } public override void […]

如何在asp.net中的动作filter中添加参数?

我有以下filter属性,我可以将字符串数组传递给属性,如[MyAttribute(“string1”, “string2”)] 。 public class MyAttribute : TypeFilterAttribute { private readonly string[] _ids; public MyAttribute(params string[] ids) : base(typeof(MyAttributeImpl)) { _ids = ids; } private class MyAttributeImpl : IActionFilter { private readonly ILogger _logger; public MyAttributeImpl(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger(); } public void OnActionExecuting(ActionExecutingContext context) { // HOW DO I ACCESS THE IDs VARIABLE […]

ASP.NET MVC3 + ActionFilterAttribute +注入?

嘿那里,我已经成功地在我的FilterAttribute中使用了属性注入,但是我想知道它是否可以将它移动到构造函数中呢? 我目前的代码: // AuthAttribute.cs public class AuthAttribute : ActionFilterAttribute { public Roles _authRoles { get; private set; } [Inject] private readonly IAuthorizationService _service; public AuthAttribute(Roles roles) { _authRoles = roles; } public override void OnActionExecuting(ActionExecutingContext filterContext) { if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { string redirectOnSuccess = filterContext.HttpContext.Request.Url.AbsolutePath; string redirectUrl = string.Format(“?returnUrl={0}”, redirectOnSuccess); string loginUrl = FormsAuthentication.LoginUrl + redirectUrl; […]