WebAPI - 在执行路由之前添加检查

时间:2017-09-29 09:30:52

标签: c# asp.net-web-api model-view-controller asp.net-web-api2

我正在使用Restier从数据集生成oData。一切都很棒。

public async static void Register(HttpConfiguration config)
{
    await config.MapRestierRoute<EntityFrameworkApi<uData>>(
    "uData",
    "/api/uData",
    new RestierBatchHandler(GlobalConfiguration.DefaultServer));
}

我需要根据URL的一部分执行自定义代码,例如/ id / api / uData

如何添加控制器以进行简单检查,然后继续执行重定路由?

所以我想在发送oData之前进行检查,我只需要一个简单的控制器根据id作为URL的一部分来检查内容。

我怎么能这样做 - 无法在任何地方找到它。一个小样本代码会很棒。

非常感谢。

1 个答案:

答案 0 :(得分:2)

您应该使用action filters

public class YourActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
         // Write Preprocessing logic here
    }
}

您可以在Action级别或Controller级别使用此属性,如此

[YourActionFilter]
public Action Login(...)
{
    // Your action code here
}