3

OpenRasta.Coreには、ハンドラーが例外をスローしたときに送信されるサーバーエラーページのレンダリングを担当するHtmlErrorCodecがあることに気付きました。

例外スローハンドラーに対してJSONAjaxリクエストを行うと、このコーデックが選択され、例外がHTMLとしてレンダリングされます。

自分のIMediaTypeWriterをIList<Error>にMediaType( "application / json")で登録しようとしたので、JSONをブラウザーに送り返すことができますが、無視されているようです。誰か助けてもらえますか?

ありがとうニール

4

2 に答える 2

1

例外をキャッチして、タイプでラップし、次のようなことを実行できますか?

ResourceSpace.Has.ResourcesOfType<MyErrorWrapper>().WithoutUri.AsJsonDataContract()
于 2011-08-31T15:20:28.267 に答える
1

エラーが発生した場合、実際にはIListを使用したコーデックが選択されますが、タイプの通常の接続に従います。

リクエストログを見て、htmlコーデックが選択される方法と理由を確認することをお勧めします(リモートデバッグトンネルビジョンでは、ブラウザがに相当するものを送信している可能性があります。Accept: text/html,application/jsonその時点でORは送信されません。 2つのうちどちらが受け入れられるかを実際に知っています。これはおそらくtext/htmlをaq1で登録するのでバグです(0.5である必要があります)。それが実際に問題である場合、解決策はhtmlエラーコーデックの登録を削除することです。これは、独自のDependencyRegistrarを提供することで実行できます。

于 2011-09-01T14:53:48.587 に答える