gpt4 book ai didi

nancy - 在与 Nancy 初始匹配后捕获所有 url 段

转载 作者:行者123 更新时间:2023-12-01 01:23:55 26 4
gpt4 key购买 nike

我想要在初始匹配后匹配/捕获所有 url 段的 nancy 规则。

例如,我想这样做:

有一个网址,如:/views/viewname/pageid/visitid/someother

和这样的规则:

Get["/views/{view}/{all other values}"] = parameters =>
{
string view = parameters.view;

List<string> listOfOtherValues = all other parameters..

return ...
};

listOfOtherValues 最终会是:
  • pageid
  • 访问ID
  • 别人

  • 我也想对查询字符串参数执行此操作。

    给定一个网址,如:/views/viewname?pageid=1&visitid=34&someother=hello

    那么 listOfOtherValues 最终会是:
  • 1
  • 34
  • 你好

  • 南希甚至有可能做到这一点吗?

    最佳答案

    对于第一个问题,您可以使用正则表达式和简单名称来定义捕获组。所以你只需定义一个catch all RegEx。
    其次,您只需要枚举 Request.Query 字典。

    下面是一些代码,在单个路由中演示了两者。

    public class CustomModule : NancyModule
    {
    public CustomModule() {
    Get["/views/{view}/(?<all>.*)"] = Render;
    }

    private Response Render(dynamic parameters) {
    String result = "View: " + parameters.view + "<br/>";
    foreach (var other in ((string)parameters.all).Split('/'))
    result += other + "<br/>";

    foreach (var name in Request.Query)
    result += name + ": " + Request.Query[name] + "<br/>";

    return result;
    }
    }

    有了这个,你可以调用一个 URL,比如 /views/home/abc/def/ghi/?x=1&y=2并获得输出 View: home abc def ghi x: 1 y: 2
    笔记: foreach v0.9+ 支持超过 Request.Query

    关于nancy - 在与 Nancy 初始匹配后捕获所有 url 段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919835/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com