Url.RouteUrl из вспомогательного расширения Html

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

Я расширяюсь Html.HtmlHelper для рендеринга макета в зависимости от страницы, на которой я:

 public static HtmlString RenderBreadCrumb(this HtmlHelper helper, PageType pagetype, object Model)
  

Как мне использовать Url.RouteUrl внутри HtmlHelper для отображения URL?

Ответ №1:

Вам нужно создать новый экземпляр UrlHelper, используя контекст запроса.

 UrlHelper Url = new UrlHelper(helper.ViewContext.RequestContext);
Url.RouteUrl(…);
  

Ответ №2:

Вместо этого просто создайте расширение UrlHelper:

 public static string RenderBreadCrumb(this UrlHelper helper, PageType pagetype, object Model)
  

Затем вызовите через:

  @Url.RenderBreadCrumb(pageType, Model)