我正在使用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}");
答案 0 :(得分:2)
考虑使用Url Rewriting Middleware。
这里Startup.Configure
方法中的代码如下所示:
var options = new RewriteOptions();
options.AddRewrite("MyOldPage/(.*)", "MyNewPage/?handler=Test&MyParam=$1", false);
app.UseRewriter(options);
您应根据需要调整正则表达式(.*)
,以匹配模式或要重定向的网址。