我的引导程序内部有:
protected override void ApplicationStartup(Nancy.TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) {
base.ApplicationStartup(container, pipelines);
pipelines.BeforeRequest.AddItemToStartOfPipeline (ctx =>
{
var parameters = ctx.Parameters;
var resolver = ctx.ResolvedRoute;
return null;
});
}
不幸的是,似乎在对“http://localhost:3579/thingy/123”这样的网址发出请求时,其匹配路由“/ thingy / {thingyId}”ctx.Parameters和ctx.ResolvedRoute都为空,即使在AddItemToEndOfPipeline中也是如此。
不要问我为什么,但我需要在许多不同的子路由之前使用这个路由参数进行摆弄,但找不到访问它的方法。有人知道吗?
答案 0 :(得分:2)
我做到了:)
protected override void ApplicationStartup(Nancy.TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) {
base.ApplicationStartup(container, pipelines);
pipelines.BeforeRequest.AddItemToStartOfPipeline (ctx =>
{
var resolver = container.Resolve<IRouteResolver>();
var route = resolver.Resolve(ctx);
var thingyId = route.Parameters["thingyId"];
return null;
});
}