2012-05-23 5 views
9

Ich habe ein einfaches Nancy-Modul. Ich möchte Abfrage-String (q-s) -Parameter an den Handler übergeben. Wenn ich keine q-s-Parameter habe, ist alles in Ordnung. Sobald ich einen Parameter hinzufüge, bekomme ich einen 404 Status Code zurück.NancyFX: Routen mit Abfrage String-Parameter gibt immer einen 404 NotFound

NancyModule

public class SimpleModule : NancyModule 
{ 
    public SimpleModule() 
    { 
     Get["/"] = parameters => HttpStatusCode.OK; 
    } 
} 

Test Unit - Pässe

[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); 
} 

Test Unit - Fails

[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); 
} 

Dank

Antwort

16

Sie passieren nicht in der Abfrage auf die URL, verwenden Sie stattdessen die .Query Methode auf dem Browser-Kontext

var result = browser.Get("/", with => { 
    with.Query("key", "value"); 
}); 
+4

Ich kann nicht sagen, dass dies SDHP sehr ist. –

+0

@ tom.dietrich diese qas vor mehr als einem Jahr gepostet und seitdem hat sich das Verhalten geändert, so dass es funktioniert – TheCodeJunkie

+1

Das schien nicht der Fall zu sein, als ich letzte Woche in dieselbe Sache lief. –