gpt4 book ai didi

url-routing - NancyFX Catch All 路线

转载 作者:行者123 更新时间:2023-12-03 15:16:19 24 4
gpt4 key购买 nike

NancyFX 是否支持 ASP.NET MVC,例如“Catch All”路由?我需要一个,基本上匹配每个 URL。这对于构建单页应用程序非常方便。

那可能吗?

最佳答案

Tested in Nancy version 0.23.2Get[@"/(.*)"]对我来说不是一条万能路线。路线 "/" , "/foo/bar" ,更长的路线不会 catch 。似乎没有必要定义一个 Get["/"]根 URL 的路由。似乎没有其他东西能捕获它(试过 Get["{uri*}"] )。这是我最终定义路由的方式(请记住,我是为 Angular 应用程序执行此操作):

Get["/views/{uri*}"] = _ => { return "A partial view..."; };
Get["/"] =
Get["/{uri*}"] = _ =>
{
var uri = (string)_.uri;// The captured route
// If you're using OWIN, you can also get a reference to the captured route with:
var environment = this.Context.GetOwinEnvironment();// GetOwinEnvironment is in the 'Nancy.Owin' namespace
var requestPath = (string)environment["owin.RequestPath"];
return View["views/defaultLayout.html"];
};

理解很重要 Pattern Scoring .路由模式是加权的,如果两条路由匹配相同的 url 段,则得分越高越好。包罗万象的模式被加权 0即使 /views/{uri*}路由模式也是一个包罗万象的东西,它以文字开头,加权 10000 ,因此它将在所有以/views 开头的路由上胜出。

这是关于 Accessing Owin's Environment Variables 的更多信息.注意捕获的 uri变量和 requestPath会略有不同。 requestPath将以 / 开头其中 uri变量不会。此外,如果匹配的路由模式是 Get["/"] , uri将是 nullrequestPath将是 "/" .

Views 路由将根据 url 路径返回部分 h​​tml 文件,所有其他路由将返回将引导 SPA 的默认布局页面。

关于url-routing - NancyFX Catch All 路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679553/

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