как получить контроллер и имя действия из RewriteContext - PullRequest
0 голосов
/ 25 января 2019

с таким правилом перезаписи:

public class MyRule : IRule
{
    public void ApplyRule(RewriteContext context)
    {
        var path = context.HttpContext.Request.Path;
        ///var controllerName = ???
    }
}

как мне получить имя контроллера и действия?


в Startup.cs / Настройка У меня есть:

var rewriter = new RewriteOptions().Add(new MyRule());

app.UseRewriter(rewriter);

app.UseStaticFiles();

app.UseMvc(
...

1 Ответ

0 голосов
/ 25 января 2019

Правила перезаписи ничего не знают о контроллере и действии.

Слишком рано в конвейере знать что-либо о маршрутизации MVC и обычно связано с перезаписью ресурсов на основе шаблона, определенного для запроса.

Перезапись URL - этоизменение URL-адресов запроса на основе одного или нескольких предопределенных правил.Перезапись URL создает абстракцию между расположениями ресурсов и их адресами, поэтому местоположения и адреса не связаны между собой.
Перезапись URL полезна в нескольких сценариях для:

  • Временного перемещения или замены ресурсов сервераили постоянно и поддерживать стабильные локаторы для этих ресурсов.
  • Разделять обработку запросов по разным приложениям или по областям одного приложения.
  • Удалять, добавлять или реорганизовывать сегменты URL для входящих запросов.
  • Оптимизация общедоступных URL-адресов для поисковой оптимизации (SEO).
  • Разрешить использование удобных общедоступных URL-адресов, чтобы помочь посетителям прогнозировать содержимое, возвращаемое при запросе ресурса.
  • Перенаправление небезопасных запросов для защитыконечные точки.
  • Предотвращение хотлинкинга, когда внешний сайт использует размещенный статический ресурс на другом сайте, связывая ресурс с собственным контентом.

Ссылка Перезапись URLПромежуточное программное обеспечение в ASP.NET Core

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...