我有一个简单的Nancy模块。我想将查询字符串(q-s)参数传递给处理程序。如果我没有任何q-s参数,一切都很好。一旦我添加了一个参数,我就会收到一个404状态代码。
NancyModule
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);
}
由于
答案 0 :(得分:18)
您不会在网址上传递查询,而是在浏览器上下文中使用.Query方法
var result = browser.Get("/", with => {
with.Query("key", "value");
});