【问题标题】:Webapi Inbound and outbound actionsWebapi 入站和出站操作
【发布时间】:2013-09-23 19:32:23
【问题描述】:

我正在使用 WebApi 进行休息服务。我需要让每个请求都点击入站过滤器/操作(为请求定价)并点击出站过滤器/操作(为结果计费)。大约一个月前,我遇到了这个词,但我想不起来。诸如“PostAction”或“PostFilter”之类的东西。谁能指出我正确的方向?

【问题讨论】:

  • 你可能指的是RegisterGlobalFilters
  • 搜索一下,看看吧。
  • 还在看RegisterGlobalFilters,但是我需要在控制器执行之前和控制器执行之后执行代码。我还没有看到如何在控制器之前和之后运行 RegisterGlobalFilters。不过还在寻找。
  • 看看这里,这可能会有所帮助msdn.microsoft.com/en-us/library/gg416513(v=vs.98).aspx
  • 看起来不错。我正在尝试一些原型代码来测试它。

标签: c# asp.net-web-api


【解决方案1】:

如果您查看此链接Filtering in ASP.NET MVC,他们有一个示例说明如何将自定义过滤器attribute 应用于控制器,该控制器应用于所有Action 方法。

这是链接中的代码示例...

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}

您可以看到添加到控制器的自定义过滤器。

在您的场景中,IActionFilter 可能有用,它有两个 OnActionExecutedOnActionExecuting

查看How to add global ASP.Net Web Api Filters? 以获取有关 WebAPI 的帮助。

【讨论】:

  • 我认为它不会起作用。为了让控制器在 WebApi 中工作,我必须从 ApiController 派生。当我从 Controller 派生时,WebApi 正在崩溃。当我将它切换回 ApiController 时,WebApi 开始工作。至少基于我的原型。
  • 好的,让我试一试。我想我了解管道。
  • 好的,开始工作了。 ActionFilterAttribute 是我曾经从 OnActionExecutedOnActionExecuting 派生并实现的。参考System.Web.Http.Filters 而不是System.Web.Mvc
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
相关资源
最近更新 更多