Razor Pages - 从旧页面到新页面的路由

时间:2018-03-04 18:54:51

标签: asp.net-core razor-pages

我正在使用asp.net核心的“剃刀页面”。

在我的一个名为“MyNewPage”的页面中,我有以下代码:

    public void OnGetTest(string MyParam)
    {
       //do something
    }

要执行它,我只需转到:/ MyNewPage?handler = Test& MyParam = abc

这完全没问题。我现在想做的是将旧URL映射到它。例如:

     /MyOldPage/xyz should map to  /MyNewPage?handler=Test&MyParam=xyz

在Startup.cs中我想在ConfigureServices中写这样的东西,但它不起作用。我有什么想法可以实现这个目标吗?

     options.Conventions.AddPageRoute("/MyNewPage?handler=Test&MyParam={text}", "/MyOldPage/{text}");

1 个答案:

答案 0 :(得分:2)

考虑使用Url Rewriting Middleware。 这里Startup.Configure方法中的代码如下所示:

var options = new RewriteOptions();
options.AddRewrite("MyOldPage/(.*)", "MyNewPage/?handler=Test&MyParam=$1", false);
app.UseRewriter(options);

您应根据需要调整正则表达式(.*),以匹配模式或要重定向的网址。