【问题标题】:Formatting uri template string values in ASP.NET WebApi在 ASP.NET WebApi 中格式化 uri 模板字符串值
【发布时间】:2012-08-09 17:31:40
【问题描述】:

我有一个 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}。为了做到这一点,我应该从哪条路径开始?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-web-api


    【解决方案1】:

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

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

    How WebAPI does Parameter Binding

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-22
      • 2011-03-21
      • 2011-08-03
      • 2017-07-05
      • 1970-01-01
      • 2011-02-13
      • 2019-01-22
      相关资源
      最近更新 更多