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 – “2015年4月20日Google帐户的OpenID2已经消失”
- 来自ASP.NET MVC站点的“无效的JSON原语:alihack”错误
- 如何在ASP.NET自定义控件中持久保存List属性?
- asp.net – 防止TextBox中的特殊字符
- 遭遇Asp.Net长文件名下载的问题和解决办法
- 过滤ASP.NET Core API中的属性
- asp.net-core – 使用IdentityServer4生成访问令牌,无需密码
- asp.net-mvc – mvc razor @helper可以返回非编码标签吗?
- asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?
- asp.net-mvc – 如何使用Visual Studio 2013和Entity Frame
- asp.net结合Ajax验证用户名是否存在的代码
- asp.net-mvc – SSL握手问题? (当时:网页挂起,
- asp.net – Orchard CMS Media中的文件大小上传限
- .net4.0中的ClientIDMode
- asp.net-mvc – 有没有办法重命名RequestVerific
- asp.net-mvc-4 – Can Castle Windsor可用于在AS
- asp.net – 未知的服务器标签’ajaxToolkit:Cal
- asp.net-web-api – 在ASP.NET Web API控制器的n
- asp.net – 基于函数式编程的UI
- Asp.net webForm设置允许表单提交Html的方法
