1

JsonDataContractCodec を介してオブジェクトを JSON として返すと、OpenRasta は Content-Type ヘッダーを

アプリケーション/json

ただし、コンテンツ タイプの文字セット部分は無視されます。

Chrome を使用すると、次のヘッダーで GET リクエストが送信されます。

Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3

私のutf-8でエンコードされたjsonオブジェクトはすべてうまくいきません。

OperationResult をオーバーライドしようとしましたが、うまくいきませんでした。OpenRasta は私のヘッダーをコーデックのヘッダーで上書きします。

4

1 に答える 1

0

方法を見つけました - JsonCoder から継承し、以下を適用しますMediaTypeAttribute

[MediaType("application/json; charset=utf8")]
public class JsonWithEncoding:JsonDataContractCodec
{

}

ハンドラーを次のように登録します。

ResourceSpace.Has
  .ResourcesOfType<IEnumerable<ProfileResource>>()
  .AtUri("/profiles")
  .HandledBy<ProfileHandler>()
  .TranscodedBy<JsonWithEncoding>();

しかし、この方法は非常に静的です:(

于 2011-02-17T06:39:33.947 に答える