C# asp.net core 2.0中的Url重写
我想重写urlC# asp.net core 2.0中的Url重写,c#,asp.net-mvc,asp.net-core-mvc,asp.net-core-2.0,C#,Asp.net Mvc,Asp.net Core Mvc,Asp.net Core 2.0,我想重写url http://localhost:56713/Home/UserDetails?Code=223322 与 我已经在StartUp.cs中写了以下内容,但它不起作用 var rewrite = new RewriteOptions() .AddRewrite(@"{$1}", "Home/UserDetails?Code={$1}",true); AddRewrite函数的第一个参数需要一个正则表达式 var rewrite = new RewriteOptions().
http://localhost:56713/Home/UserDetails?Code=223322
与
我已经在StartUp.cs中写了以下内容,但它不起作用
var rewrite = new RewriteOptions()
.AddRewrite(@"{$1}", "Home/UserDetails?Code={$1}",true);
AddRewrite函数的第一个参数需要一个正则表达式
var rewrite = new RewriteOptions().AddRewrite(
@"^Home/UserDetails?Code=(.*)", // RegEx to match Route
"Home/{$1}", // URL to rewrite route
skipRemainingRules: true // Should skip other rules
);
此链接可能有助于提供更多示例
添加规则以匹配
@“{$1}”
将不起作用。术语$1
表示使用正则表达式解析的值。您还没有执行任何正则表达式,因此实际上是在告诉它“只要URL为null
,就重写我的URL”。显然,这不太可能
要使用以下正则表达式匹配传入URL:
@"^Home/UserDetails?Code=(\d+)"
(\d+)
告诉RegEx匹配“一个或多个数字”,并将其存储为变量。由于这是参数中包含的唯一变量,因此该值存储在$1
中
然后,您希望使用使用该正则表达式解析的值重写URL:
"Home/$1"
将这两个字符串传递到AddRewrite
方法:
AddRewrite(
@"^Home/UserDetails?Code=(\d+)", // RegEx to match URL
"Home/$1", // URL to rewrite
true // Stop processing any aditional rules
);
谢谢。当查询字符串类似于“(abc)-xyz@123”时,正则表达式是什么
AddRewrite(
@"^Home/UserDetails?Code=(\d+)", // RegEx to match URL
"Home/$1", // URL to rewrite
true // Stop processing any aditional rules
);