Я думал, что опубликую легкий обходной путь для тех, кто может его искать, и наткнется на этот вопрос.
Хотя ToMvcHtmlString является внутренним, его довольно легко обойти, поскольку он использует открытые методы:
Из источника MVC:
internal MvcHtmlString ToMvcHtmlString(TagRenderMode renderMode) {
return MvcHtmlString.Create(ToString(renderMode));
}
И MvcHtmlString.Create, и TagBuilder.ToString являются открытыми, поэтому просто замените
return tagBuilder.ToMvcHtmlString(TagRenderMode.Normal);
с
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));
и тебе пора! Прекрасно работает для меня. Не уверен, почему они даже удосужились сделать отдельный внутренний метод.