Asp. net core 3 Сегмент URL-адреса Unicode как параметр в контроллере Метод действия HttpGet не получает значения сегмента URL - PullRequest
0 голосов
/ 01 мая 2020
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?}");

});

Вот мой метод контроллера

public IActionResult Category(Int32 id, String name, Int32 page = 1)
{


            return Ok(name);
}

Когда я отправляю запрос со следующим URL-адресом с символами Unicode, он не работает. Но работа с символами Engli sh: https://localhost: 15000 / category / 1 / চ াল не работает. Но работа с https://localhost: 15000 / категория / 1 / рис

Когда я использую слаг Unicode, он не получает никакого значения в переменной "name", но Engli sh работа слаг

1 Ответ

0 голосов
/ 02 мая 2020

Для решения этой проблемы используется регулярное выражение \ p {L} \ p {M} в кодировке Unicode, заданное в функции AddRewrite ().

...