我注意到 OpenRasta.Core 有一个 HtmlErrorCodec,它负责在处理程序抛出异常时呈现服务器错误页面。
当我向异常抛出处理程序发出 JSON Ajax 请求时,会选择此编解码器并将异常呈现为 HTML。
我尝试使用 MediaType("application/json") 为 IList
谢谢 尼尔
最佳答案
如果出现错误,确实会选择带有 IList 的编解码器,但会按照类型的正常连接。
我建议查看请求日志并找出选择 html 编解码器的方式和原因(我怀疑我的远程调试隧道视觉可能会让浏览器发送相当于 Accept : text/html,application/json
,此时 OR 并不知道两者中哪一个是可以接受的,这可能是一个错误,因为我们注册 text/html 的 q 为 1,而 q 应该是 0.5) .如果这确实是问题所在,解决方案是删除 html 错误编解码器的注册,您可以通过提供自己的 DependencyRegistrar 来完成。
关于OpenRasta - 将错误编码为 JSON 而不是 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250554/