HtmlHelper в контроллере - PullRequest
       2

HtmlHelper в контроллере

4 голосов
/ 31 июля 2011

Мне нужен экземпляр HtmlHelper в моем контроллере.

Как я могу создать его экземпляр?спасибо

Это не строит:

var h = new HtmlHelper(new ViewContext(ControllerContext, new WebFormView("omg"), new ViewDataDictionary(), new TempDataDictionary()), new ViewPage());

Вот скриншот ошибки enter image description here

Кроме того, когда я смотрю насписок методов в var h, я вижу только мои собственные методы расширения, а не обычные, такие как ActionLink.Так что нужно перечислить также. (решено sternr)

Решение:

  1. Убедитесь, что System.Web.Mvc.Html включен.

  2. Вот код для создания экземпляра HtmlHelper.

    System.IO.TextWriter writer = new System.IO.StringWriter();

    var html = new HtmlHelper(new ViewContext(ControllerContext, new WebFormView(ControllerContext, "omg"), new ViewDataDictionary(), new TempDataDictionary(), writer), new ViewPage());

1 Ответ

2 голосов
/ 31 июля 2011

HtmlHelper.ActionLink и большинство методов, которые вы, вероятно, ищете, являются методами расширения, объявленными в пространстве имен System.Web.Mvc.Html.

Что касается создания \ использования HtmlHelper внутри вашего контроллера - это плохая практика, поскольку вы четко комбинируете код пользовательского интерфейса с кодом контроллера. Что ты пытаешься достичь?

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