0

导航到下面的代码后,Restlethttp://localhost:57645为 DHC 返回 200(OK),为“Chrome 浏览器”返回 500(InternalServerError)。

public class SampleModule : Nancy.NancyModule
{
    public SampleModule()
    {
        Get["/"] = _ =>
        {
            return Negotiate
                .WithStatusCode(HttpStatusCode.OK)
                .WithModel(10);
        };
}

这怎么可能?

4

2 回答 2

2

您在第一个示例中遇到的行为是预期的。浏览器正在请求text/html

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Nancy 试图根据 type 定位视图10,因为10它是 的类型Int32,Nancy 试图找到一个视图,Int32因为它试图用 View 响应,因为这是浏览器要求的。

默认情况下,您在 Chrome 中使用的开发客户端很可能会发送 JSON 请求,这就是它似乎可以正常工作的原因。

您可以在此处阅读有关此内容的更多信息:

http://www.philliphaydon.com/2013/04/nancyfx-revisiting-content-negotiation-and-apis-part-1/

于 2013-04-23T15:45:43.693 回答
0

找到了!在我的情况下最好使用

return Response.AsJson(10);
于 2013-04-23T13:37:52.563 回答