0

我有一个 ASP.NET WebApi 应用程序,它有一些控制器方法,这些方法期望某些字符串作为方法参数传入(声明为路由模板的一部分)。

在所有方法中,传入的字符串都是 base64 编码的——这意味着每个控制器方法都必须在对它们进行任何操作之前对它们进行 base64 解码。虽然我显然可以让每个方法很容易地做到这一点,但我想知道是否有一种方法可以在字符串实际传递给控制器​​方法之前执行解码。我认为这是类似于动作过滤器或自定义格式化程序的东西,但我对 asp.net web api 不够熟悉,不知道从哪里开始?

摘要:我有类似的路由模板:{controller}/{encodedString}/whatever where{encodedString}总是一个 base64 编码的字符串。和具有类似方法的控制器

GetWhatever(string encodedString)
{
  Base64Decode(encodedString);
  // do other stuff...
}

我想{encodedString}在实际调用控制器方法之前使用 asp.net webapi 管道的某些部分进行解码。为了做到这一点,我应该从什么路径开始?

4

1 回答 1

1

您可以创建自定义模型绑定器并将其附加到使用ModelBinderAttribute. 然后在模型绑定器中进行 base64 解码。

有关 Web API 检查中参数绑定的参考:

WebAPI如何做参数绑定

于 2012-08-10T08:31:43.753 回答