Как я создаю маршрут без ViewContext в ASP.NET MVC?

Я думаю, что шаблон может быть упрощен для ваших примеров данных, потому что он содержит лишние структуры группировки, и вы можете опустить отрицательный прогноз в начале, утверждая, что строка не содержит {, } или ); [ 1121]

(?:copyright[ \t]*)?(?:©|\(c\)|&#(?:169|xa9;)|©)[ \t]+(?:19|20)[0-9]{2} Company(?: All Rights Reserved)?

Regex demo

Вы можете расширить шаблон в соответствии со своими требованиями.

Это будет соответствовать

  • (?: Группа без захвата
    • copyright[ \t]* Соответствие авторскому праву, совпадение с 0+ пробелами или табуляцией
  • )? Закрыть группу без захвата и сделать ее необязательной
  • (?: Группа без захвата
    • ©|\(c\)|&#(?:169|xa9;)|© Соответствовать любому из перечисленных элементов в чередовании
  • )[ \t]+ Закрыть группу без захвата и сопоставить более 1 раза пробел или символ табуляции
  • (?:19|20)[0-9]{2} Company сопоставить 9 или 20, за которыми следуют 2 цифры
  • (?: All Rights Reserved)? При желании сопоставить Все права защищены

7
задан Simon_Weaver 7 April 2009 в 04:37
поделиться

1 ответ

Попробуйте это:

var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext);
var urlHelper = new UrlHelper(requestContext, new RouteData()));

Надеюсь, это поможет

ОБНОВЛЕННЫЙ:

Предыдущее не корректно (я отправил его от своей памяти). Попробуйте это вместо этого (это работает в одном из моих проектов):

var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext, new RouteData());
var urlHelper = new UrlHelper(requestContext);

new RouteData() использует просто только для RequestContext инициализация и new UrlHelper(requestContext) на самом деле вызовы new UrlHelper(requestContext, RouteTable.Routes)

11
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: