[英]Asp.net core 3 Unicode slug url segment as a parameter in controller HttpGet action method does't receive any url segment value
Here is my Setup.cs
app.UseMvc(routes =>
{
var rewrite = new RewriteOptions()
.AddRewrite(@"category/(\d+)/([\p{L}\p{M}\-]+)", "Home/Category?id=$1&name=$2", skipRemainingRules: true).AddRedirectToHttpsPermanent();
app.UseRewriter(rewrite);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Here is my Controller Method这是我的控制器方法
public IActionResult Category(Int32 id, String name, Int32 page = 1)
{
return Ok(name);
}
When I send request with the following url with Unicode characters it does't work.当我使用以下带有 Unicode 字符的 url 发送请求时,它不起作用。 But work with English characters: https://localhost:15000/category/1/চ াল does't work.但是使用英文字符: https://localhost:15000/category/1/চ াল 不起作用。 But work with https://localhost:15000/category/1/rice但是使用https://localhost:15000/category/1/rice
When i use Unicode slug it does not receive any value in "name" variable but English slug work当我使用 Unicode slug 时,它在“name”变量中没有收到任何值,但英语 slug 可以工作
它是通过在 AddRewrite() 函数中使用 Unicode rang \ঀ-\ 而不是 \\p{L}\\p{M} 正则表达式来解决的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.