Unfortunately, you're correct. Only the HtmlHelper and UrlHelper objects are initialised.
You can get at the context by doing Html.ViewContext
---
Here's the snippet from reflector
private static string DoRendering(ViewUserControl instance, ViewContext context, object controlData, object propertySettings)
{
ViewPage sourcePage = new ViewPage();
sourcePage.Controls.Add(instance);
sourcePage.Url = new UrlHelper(context);
sourcePage.Html = new HtmlHelper(context);
SetUserControlProperties(instance, propertySettings);
if (controlData == null)
{
instance.SetViewData(context.ViewData);
}
else
{
instance.SetViewData(controlData);
}
return HtmlExtensionUtility.RenderPage(sourcePage);
}
What *should* happen is sourcePage.ViewContext = context and they should do lazy initialization of the HtmlHelper, AjaxHelper, and UrlHelper objects.