控制器中的HtmlHelper

时间:2011-07-31 05:24:17

标签: asp.net-mvc-3

我的控制器中需要一个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 个答案:

答案 0 :(得分:2)

HtmlHelper.ActionLink和您可能正在寻找的大多数方法都是在System.Web.Mvc.Html命名空间下声明的扩展方法。

至于在控制器中使用HtmlHelper实例化\ - 这是一个不好的做法,因为你明确地将UI代码与Controller代码结合起来。你想要实现什么目标?