0

標準の MVC では、JsonNet を使用してキャメルケースの JSON を返し、関連するエンティティを持つエンティティを正常にシリアル化します (それ以外の場合、デフォルトのシリアライザーを使用して「サイクル」エラーを報告します)。

Orchard モジュールの WebAPI コントローラーについても同じことをしたいと思います。デフォルトでは、PascalCase JSON を返し、エンティティのリストが与えられると「cyles」例外を報告します。

JsonNet が生成するものを模倣するために、Orchard モジュール内から JSON 出力を構成する最善の方法を誰か説明できますか?

4

1 に答える 1

0

ActionFilter で JSON フォーマッタ設定を camelCase に設定するという回避策を見つけました。

    public class CamelCaseJsonAttribute : ActionFilterAttribute {

    public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        var jsonFormatter = actionContext.ControllerContext.Configuration.Formatters.OfType<JsonMediaTypeFormatter>().First();
        jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    }
}

しかし、これはグローバルに一度ではなく、リクエストごとに設定されるため、非効率的です。

モジュールのどこかに HttpConfiguration を設定するための拡張ポイントがあると思います - 誰でも教えてもらえますか?

どうもありがとう。

于 2013-07-04T19:55:06.277 に答える