NancyFX:带有查询字符串参数的路由总是返回 404 NotFound
Posted
技术标签:
【中文标题】NancyFX:带有查询字符串参数的路由总是返回 404 NotFound【英文标题】:NancyFX: Routes with query string parameters always returns a 404 NotFound 【发布时间】:2012-05-29 22:21:39 【问题描述】:我有一个简单的 Nancy 模块。我想将查询字符串(q-s)参数传递给处理程序。如果我没有任何 q-s 参数,一切都很好。一旦我添加了一个参数,我就会返回一个 404 状态码。
南希模块
public class SimpleModule : NancyModule
public SimpleModule()
Get["/"] = parameters => HttpStatusCode.OK;
单元测试 - 通过
[Fact]
public void SimpleModule__Should_return_statusOK_when_passing_query_params()
const string uri = "/";
var response = Fake.Browser().Get(uri, with => with.HttpRequest());
response.StatusCode.ShouldBe(HttpStatusCode.OK);
单元测试 - 失败
[Fact]
public void SimpleModule__Should_return_statusOK_when_passing_query_params()
const string uri = "/?id=1";
var response = Fake.Browser().Get(uri, with => with.HttpRequest());
response.StatusCode.ShouldBe(HttpStatusCode.OK);
谢谢
【问题讨论】:
【参考方案1】:您没有在 url 上传入查询,而是在浏览器上下文中使用 .Query 方法
var result = browser.Get("/", with =>
with.Query("key", "value");
);
【讨论】:
我不能说这是非常 SDHP。 上周我遇到同样的事情时,情况似乎并非如此。 @tom.dietrich 您尝试以下哪种情况? gist.github.com/thecodejunkie/204297b492e1ab5b3e2f 所有这些测试都通过了。如果您有任何问题,请在我们的 GitHub 存储库中提出,并附上重现步骤,我们会看看 Should_return_querystring_parameter_when_passed_in_with_path 失败。它仅在我传入完整的 URL(例如 localhost/foo?bar=123)时才有效,但不适用于 /foo?bar=123 我可以确认错误仍然存在,使用 Nancy.Testing 1.4.1.0以上是关于NancyFX:带有查询字符串参数的路由总是返回 404 NotFound的主要内容,如果未能解决你的问题,请参考以下文章
DB2 - 使用带有字符串数组参数的 Dapper 选择查询将不会返回正确的结果