标签: nancy

Nancy模型绑定到子类

我们在Nancy的默认模型绑定器上遇到了问题.鉴于以下......

public class Foo
{
    public Foo()
    {
    }

    public string Name { get; set; }

    public Bar Bar { get; set; }
}

public class Bar
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

像......这样的元素

<input type="text" value="Name" />
<input type="text" value="Bar.Name" />
Run Code Online (Sandbox Code Playgroud)

使用默认模型绑定器如此...

var foo = this.Bind<Foo>();

这正确绑定Foo.Name但无法绑定Foo.Bar.Name

有没有办法使用默认绑定器启用这种绑定,还是我们需要自己滚动?若有,那么有什么好例子吗?

c# model-binding nancy

8
推荐指数
1
解决办法
3641
查看次数

如何访问NancyFX请求标头值

我需要从Request.Headers集合中获取一些自定义(shibboleth)标头值.目前我正在使用以下代码执行此操作:

CommonName = Request.Headers["cn"].FirstOrDefault();
Email = Request.Headers["mail"].FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

是否有一个不那么繁琐的语法来获取标题值?我希望看到一个动态的物体,如QueryForm所以我可以使用动态属性名称,像这样:

CommonName = Request.Headers.cn;
Email = Request.Headers.mail;
Run Code Online (Sandbox Code Playgroud)

谢谢.

http-headers nancy

8
推荐指数
1
解决办法
5663
查看次数

使用Nancy TinyIoC配置JsonNetSerializer和JsonNetBodyDeserializer

我是南希的菜鸟.我一直在使用它作为生成REST API的框架.我熟悉Json.NET所以我一直在玩这个Nancy.Serialization.JsonNet包.

我的目标:自定义行为(即更改设置)的JsonNetSerializerJsonNetBodyDeserializer.

具体来说,我想加入以下设置......

var settings = new JsonSerializerSettings { Formatting = Formatting.Indented };
settings.Converters.Add( new StringEnumConverter { AllowIntegerValues = false, CamelCaseText = true } );
Run Code Online (Sandbox Code Playgroud)

我想使用内置的TinyIoC容器来执行此自定义,以避免继承链并限制Nancy.Serialization.JsonNet包中任何更改引起的潜在问题.

注意:作为临时解决方法,我利用继承来创建CustomJsonNetSerializerCustomJsonNetBodyDeserializer.

我已经尝试了几种方法来合并这种配置至少为JsonNetSerializer.我还没有尝试配置JsonNetBodyDeserializer使用TinyIoC.我想它会以同样的方式完成.我尝试过的所有工作都在我的CustomNancyBootstrapper(继承自DefaultNancyBootstrapper).

到目前为止最成功的方法:覆盖 ConfigureApplicationContainer

protected override void ConfigureApplicationContainer( TinyIoCContainer container )
{
    base.ConfigureApplicationContainer( container );

    // probably don't need both registrations, and I've tried only keeping one or the other
    var settings = …
Run Code Online (Sandbox Code Playgroud)

c# json.net nancy tinyioc

8
推荐指数
1
解决办法
6060
查看次数

如何在NancyFX服务的Razor模板中获取当前网址?

根据这个答案,在MVC Razor中这样做的方法是@Request.RawUrl,@Request.Url.ToString()@Request.Url.AbsoluteUri.

在我的剃刀页面上,ReSharper解析@Requestusing @Nancy,我找不到HttpRequestBase.RawUrl的实例.

如何从Nancy服务模板中获取RawUrl?

razor nancy

8
推荐指数
1
解决办法
8300
查看次数

如何防止Nancy从缓存视图

我已经开始在自主模式下测试Nancy了.到目前为止,除了一个令我烦恼的问题之外,还有这么好:我如何防止它在开发过程中缓存我的观点?

我确实注意到一个注释,视图缓存应该在调试模式下被禁用,但它似乎对我不起作用 - 每当我对HTML进行更改时,我都必须重新启动应用程序.

我正在使用Nancy 0.10内置的超级简单视图引擎和.html文件.

c# nancy

7
推荐指数
1
解决办法
2999
查看次数

如何在NancyFX中编写流输出?

我正在使用Nancy编写一个简单的Web应用程序.至少有一个请求导致未知长度的流,所以我无法提供Content-Length.我想使用Transfer-Encoding: chunked,或(在这种情况下同样可以接受Connection: close).

我已经对Nancy源代码进行了快速破解,并且我已添加Response.BufferOutput,并且代码设置HttpContext.Response.BufferOutputfalse.你可以在这里看到:

public class HomeModule : NancyModule
{
    public HomeModule()
    {
        Get["/slow"] = _ => new SlowStreamResponse();
    }

    private class SlowStreamResponse : Response
    {
        public SlowStreamResponse()
        {
            ContentType = "text/plain";
            BufferOutput = false;
            Contents = s => {
                byte[] bytes = Encoding.UTF8.GetBytes("Hello World\n");
                for (int i = 0; i < 10; ++i)
                {
                    s.Write(bytes, 0, bytes.Length);
                    Thread.Sleep(500);
                }
            };
        }
    }
Run Code Online (Sandbox Code Playgroud)

它似乎没有任何影响.5秒钟后响应立即响起.我已经测试了这个基于简单WebRequest的客户端.

如何在Nancy中使用chunked输出?我正在使用ASP.NET托管,但我对其他托管选项的答案感兴趣.

如果我写一个简单的服务器使用 …

nancy

7
推荐指数
2
解决办法
6022
查看次数

使用自托管Nancy上传大型文件示例

有人可以使用在自托管模式下运行的NancyFx发布关于如何上传大文件(例如50MB)的示例.该文件应该从网页发送(method = post; enctype = multipart/form-data).

file-upload self-hosting large-files nancy

7
推荐指数
1
解决办法
5882
查看次数

如何在南希模型绑定中调整字段名称?

在Web应用程序中,我使用Nancy来创建REST服务.不幸的是,在HTML中,我们的字段名称是小写(firstName),但.NET中的适当属性是大写(FirstName).此外,我们有一些领域不映射1:1,如id这将成为TicketId在.NET.

现在我有两个问题:

  1. 对于字段名称,Nancy是区分大小写还是不区分大小写?
  2. Nancy是否为字段名称提供某种映射?

.net nancy

7
推荐指数
1
解决办法
689
查看次数

在NancyFx中,如何更改返回状态代码并设置响应文本?

使用Nancy我可以返回这样的响应:

public class MainModule : NancyModule
{
    public MainModule()
    {
        Get["/"] = parameters => {
            return "Hello World";
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以像这样返回状态400:

public class MainModule : NancyModule
{
    public MainModule()
    {
        Get["/"] = parameters => {
            return HttpStatusCode.BadRequest;
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

如何返回特定的http状态代码并设置响应文本?

c# nancy

7
推荐指数
1
解决办法
2968
查看次数

使用Dapper ORM(.NET Core)将JSON插入PostgreSQL数据库

标题几乎解释了它.否则一切正常,我可以使用Dapper从我的应用程序INSERT/ UPDATE/ DELETE/ SELECT没有问题.我遇到的具体问题是在尝试将INSERT值放入我的表格时.

我已经尝试了几种不同的方法,似乎找不到一个能够正确地将JSON值插入到我的PostgreSQL数据库中的方法.我总是得到错误,我试图插入TEXT数据库所需的类型值JSON.

为简洁起见,我将尝试仅包含相关的代码片段.

以下RAW SQL在pgAdmin中运行得非常好:

INSERT INTO public.sales(
     firstname, lastname, middlename, address1, address2, city, state, 
    zipcode, dateofbirth, phonenumber, phonenumberalt, insurancename, insuranceid, binnumber, pcnnumber, groupid, 
    offerid, offercodes, timestamp, otherfields)
    VALUES ('Fname', 'lname1', NULL, '123 ABC St', NULL, 'Washington DC', 'DC', 
            '10062', '1988-01-01', '9545555555', NULL, 'BCBS', 'XYZ123', '600100', 'ABC123', 'DC123', 
            '12', '10,50,12', '2017-03-24', '{     "guid": "9c36adc1-7fb5-4d5b-83b4-90356a46061a",     "name": "Angela Barton",     "is_active": true,     "company": "Magnafone",     "address": "178 Howard …
Run Code Online (Sandbox Code Playgroud)

postgresql json dapper nancy .net-core

7
推荐指数
1
解决办法
4020
查看次数