asp.net-mvc – 为什么我的ActionFilters都没有运行?
我今天早些时候在 asked a question关于ASP.Net MVC中的ActionFilters.原来我的问题是我的ActionFilter甚至没有运行.除了我读过 this article的其他内容,我找不到他做的任何我不做的事情. 这是我的代码: // The ActionFilter itself public class TestingIfItWorksAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.Controller.TempData["filter"] = "it worked!"; base.OnActionExecuting(filterContext); } } // The Controller Action with the filter applied [TestingIfItWorks] public ActionResult Test() { var didit = TempData["filter"]; return View(); } 我在调试时永远不会遇到过滤器方法中的断点,并且在呈现视图时TempData [“filter”]保持空值. 为什么这不起作用? 解决方法根据您对其他答案的评论通过单元测试进行测试时,不会调用过滤器.如果要调用过滤器,则需要模拟ControllerActionInvoker.最好是单独测试过滤器本身,然后使用反射来确保过滤器应用于具有正确属性的操作.我更喜欢这种机制而不是组合测试过滤器和动作. 原版的 当然,您需要覆盖您的方法,否则您实际上并没有替换基类上的方法.我原以为编译器会抱怨你需要一个新的或覆盖它.如果您不包含override关键字,则其行为就像您使用new一样.由于框架将其作为ActionFilterAttribute调用,这意味着永远不会调用您的方法. 引自MSDN:
(编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET Core知多少(7):对重复编译说NO -- dotnet watch
- asp.net-mvc – ASP.NET MVC 4 Visual Studio 2010项目模板
- asp.net-mvc – AppDomain.GetAssemblies和BuildManager.Ge
- asp.net-mvc – LINQ to SQL分页和COUNT(*)
- asp.net – 增加IIS7 / Win7 Pro上的最大上传文件大小
- asp.net-mvc – 如何忽略ASP.NET MVC 4中特定View文件夹或特
- asp.net – 网站随时随地突破
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
- asp.net-mvc – 如何在我的Asp.net Mvc中使用linq2sql存储库
- asp.net html控件的File控件实现多文件上传实例分
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错
- asp.net-mvc-3 – ASP.net MVC – 模型绑定不包括
- .NET牛人应该知道些什么,我的回答
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- asp.net – 如何将两个模型传递给一个View
- 什么是ASP.NET WebForms相当于ASP.NET MVC的View
- IIS和ASP.Net Web开发服务器之间的行为差异?
- asp.net-mvc-3 – System.Web.Mvc.HandleErrorIn
- asp.net – 在Application_BeginRequest中设置会