versión revisada del Código arriba para PageCommon ... ya que actualmente se rompe.
public static class MvcPages{
public static UrlHelper GetUrlHelper(this System.Web.UI.Control c)
{
var helper = new System.Web.Mvc.UrlHelper(c.Page.Request.RequestContext);
return helper;
}
public static HtmlHelper GetHtmlHelper(this System.Web.UI.Control c)
{
var httpContext = new HttpContextWrapper(HttpContext.Current);
var controllerContext = new ControllerContext(httpContext, new RouteData(), new DummyController());
var viewContext = new ViewContext(controllerContext, new WebFormView(controllerContext, "View"), new ViewDataDictionary(), new TempDataDictionary(), TextWriter.Null);
var helper = new HtmlHelper(viewContext, new ViewDataBag());
return helper;
}
private class ViewDataBag : IViewDataContainer
{
ViewDataDictionary vdd = new ViewDataDictionary();
public ViewDataDictionary ViewData
{
get
{
return vdd;
}
set
{
vdd = value;
}
}
}
private class DummyController : Controller
{
}
}
se necesita una instancia de UrlHelper, no HtmlHelper –
probar esto: http://stackoverflow.com/questions/724153/how-do-i-construct-a-route-without-viewcontext-in-asp -net-mvc –