我有一个ASP.NET WebApi应用程序,它有一些控制器方法,希望某些字符串作为方法参数传递(声明为路由模板的一部分)。
在所有方法中,传入的字符串都是base64编码的 - 这意味着每个控制器方法在对它们执行任何操作之前必须对它们进行base64解码。虽然我显然可以让每种方法都能够轻松地完成这项工作,但我想知道在将字符串实际传递给控制器方法之前是否有办法执行解码。我认为这是一个动作过滤器或自定义格式化程序,但我对asp.net web api不熟悉,知道从哪里开始呢?
要点:
我有路由模板,如:{controller}/{encodedString}/whatever
其中{encodedString}
始终是base64编码的字符串。
和控制器使用
GetWhatever(string encodedString)
{
Base64Decode(encodedString);
// do other stuff...
}
我想在实际调用控制器方法之前使用asp.net webapi管道的某些部分来解码{encodedString}
。我应该从哪条路开始才能做到这一点?
答案 0 :(得分:1)
您可以使用ModelBinderAttribute
创建自定义模型活页夹并将其附加到参数。在模型绑定器中,然后执行base64解码。
有关Web API检查中参数绑定的参考: