Nancy中不同客户端的不同HttpStatusCode

时间:2013-04-22 21:12:19

标签: asp.net nancy dhc

导航到http://localhost:57645以下代码后,DHC by Restlet返回200(OK),“Chrome浏览器”返回500(InternalServerError)。

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

这怎么可能?

2 个答案:

答案 0 :(得分:2)

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

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

Nancy正在尝试根据类型10找到一个视图,因为10是一种Int32,Nancy正试图找到一个名为Int32的视图它尝试使用View进行响应,因为这是浏览器要求的内容。

您在Chrome中使用的Dev客户端很可能默认情况下会发送JSON请求,这就是为什么它似乎正在运行。

您可以在此处详细了解:

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

答案 1 :(得分:0)

发现它!在我的情况下最好使用

return Response.AsJson(10);