重定向 dotvvm 中所有未找到的路由

Redirect all the not found routes in dotvvm

如何将所有未找到的页面请求重定向到同一视图?

这在某种程度上说明了我的意思:

config.RouteTable.Add("Home", "*", "Views/Home.dothtml", new { });

背后的想法是,当有人访问一个不存在的页面时:

http://localhost/WhatEverNonExistingPage

请求被重定向到

http://localhost/Home

到目前为止我发现的唯一方法是在 dotvvm 规则之外实现它:

appBuilder.Run(context =>
{
    context.Response.Redirect("/Home");
    return Task.FromResult(0);
});

这意味着基本上任何与配置的中间件中的任何路由不匹配的请求都将被重定向到“/Home”。不完全是我要找的答案,但它是有效的。

由于 DotVVM 是 Owin,您可以将它与 Nancy 一起使用。任何在 DotVVM 中不匹配的路由都会传递给 Nancy。然后,您可以使用 Nancy 来处理您的 404 或您可能需要的任何其他类型,例如 301,如果您正在重建站点。

这是一种有点冗长的方法,但如果您正在编写带有微服务的混合应用程序,那么它可能有意义。

正在设置:

https://github.com/riganti/dotvvm-samples-combo-with-nancy

在南锡处理自定义 404。

https://blog.terribledev.io/custom-error-pages-in-nancy/