Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在筛选前具有阻止操作结果_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 在筛选前具有阻止操作结果

C# 在筛选前具有阻止操作结果,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,在我的控制器中,我有: protected override void OnActionExecuting(..) { .OnActionE.. if(...) { Response.Redirect("/Login"); } } public ActionResponse Index() { return View(); } 文档说明OnActionExecuting是在索引之前运行的,但这不是真的。虽然Response.Redirect确实会发生,但只有在对索

在我的控制器中,我有:

protected override void OnActionExecuting(..)
{
  .OnActionE..
  if(...)
  {
    Response.Redirect("/Login");
  }
}

public ActionResponse Index()
{
  return View();
}
文档说明OnActionExecuting是在索引之前运行的,但这不是真的。虽然Response.Redirect确实会发生,但只有在对索引求值之后才会发生。是否可能让筛选器阻止索引执行

OnActionExecuting在操作之前运行,但它不会阻止操作也运行。为此,可以设置ActionExecutingContext的Result属性。也许是这样的:

public override void OnActionExecuting(ActionExecutingContext context)
{
    base.OnActionExecuting(context);
    context.Result = new RedirectResult("/Login");
}

如果在框架管道中的任何位置设置了结果,则应防止后续操作(包括其他筛选器)执行。

什么是.onAction。。一点通常情况下,发布太多代码的错误要比潜在地修改问题的根源要好,这里似乎就是这样。文档100%准确,问题是您使用的功能错误。通常,最好假设你做错了什么,而不是你是第一个发现某个功能有问题的人,而该功能每天都有成千上万的开发人员成功使用。@CraigW。我怎么用错了。David发布了我所期望的解决方案,但无法在文档中找到它。