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-mvc – 将IQueryable泛型转换为JSON
- asp-classic – 经典的ASP页面是否会运行在Windows 7之后的
- asp.net-mvc – 如何将变量传递给ASP.NET MVC应用程序中的自
- asp.net-mvc – 在ASP.NET MVC中使用DotNetOpenId Remember
- asp.net – Web部署项目的更好替代品
- 充分利用ASP.NET的三种缓存提高站点性能的注意方法
- asp.net – 如何配置IIS Express来调试子目录中的应用程序?
- asp.net – 你的aspx页面中的内联代码是一个好习惯吗?
- asp.net – MVC 3 System.Web.Optimization捆绑单个文件
- asp.net – NLogConfigurationException – 从’System.Str
- 使用ASP.NET AJAX Control Toolkit设置焦点
- asp.net – System.DirectoryServices – 服务器
- asp.net – IIS7:服务应用程序池“YYYYY”的进程
- 为什么工作线程使我的ASP.NET生成器在睡眠期间遇
- 如何从命令行自动“运行asp.net网站”?
- asp.net – 使用NuGet发布可执行文件和网站
- .net – 如何在请求标头上调用需要承载令牌的NSw
- asp.net – 如何.NET网站隐藏它们的文件的.aspx扩
- asp.net-mvc-3 – 坚持使用asp.net mvc 3.0脚手架
- asp.net – 如何在ASP文本框中显示会话值
