Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core Razor页面-从旧页面到新页面的路由_Asp.net Core_Razor Pages - Fatal编程技术网

Asp.net core Razor页面-从旧页面到新页面的路由

Asp.net core Razor页面-从旧页面到新页面的路由,asp.net-core,razor-pages,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 /MyNewP

我正在使用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}");
考虑使用。 下面是
启动.Configure
方法中的代码:

var options = new RewriteOptions();
options.AddRewrite("MyOldPage/(.*)", "MyNewPage/?handler=Test&MyParam=$1", false);
app.UseRewriter(options);
您应该根据需要调整正则表达式
(.*)
,以匹配要重定向的模式或URL。

请考虑使用。 下面是
启动.Configure
方法中的代码:

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

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

我假设您的页面有多个Get处理程序:OnGet和OnGetTest,对吗?@Artem是的,我有多个Get处理程序。我假设您的页面有多个Get处理程序:OnGet和OnGetTest,是吗?@Artem是的,我有多个Get处理程序。谢谢@Artak。我已经调整了正则表达式,它工作得很好。我在表达式的开头添加了一克拉(^),以确保仅匹配MyLodPage/etc,而不是BlahBlahMyOldPage/etc。我还按照您链接到的页面上的建议,将最后一个参数(SkipPreMiningRules)更改为true。谢谢@Artak。我已经调整了正则表达式,它工作得很好。我在表达式的开头添加了一个克拉(^),以确保仅匹配myolpage/etc,而不是BlahBlahMyOldPage/etc。我还按照链接页面上的建议将最后一个参数(skipRemainingRules)更改为true。