在Controller中创建HtmlHelper实例

com*_*lez 3 asp.net-mvc asp.net-mvc-2

我需要在Controller中使用HtmlHelper,所以我如何在Controller(asp.net mvc 2.0)中创建它?

gri*_*egs 8

这是你想要的吗?

在Controller中使用HtmlHelper

编辑

用这个;

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

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

string g = h.TextBox("myname").ToString();
Run Code Online (Sandbox Code Playgroud)


Vit*_*kov 7

你可以使用这样的方法:

public static HtmlHelper GetHtmlHelper(this Controller controller)
{
 var viewContext = new ViewContext(controller.ControllerContext, new FakeView(), controller.ViewData, controller.TempData, TextWriter.Null);
 return new HtmlHelper(viewContext, new ViewPage());
}

public class FakeView : IView
{
 public void Render(ViewContext viewContext, TextWriter writer)
 {
  throw new NotSupportedException();
 }
}
Run Code Online (Sandbox Code Playgroud)