Я бы, вероятно, сделал метод расширения из HtmlHelper, так что вы можете использовать его, вызвав:
@Html.MyControl("blah", "blah")
из вашего поля зрения.Вот как работает мой MarkdownHelper (хотя на самом деле это не элемент управления, он просто форматирует некоторый текст).Это также, как встроенные вещи имеют тенденцию работать (например, Html.TextBox и т. Д.):
/// <summary>
/// Helper class for transforming Markdown.
/// </summary>
public static partial class MarkdownHelper
{
/// <summary>
/// Transforms a string of Markdown into HTML.
/// </summary>
/// <param name="helper">HtmlHelper - Not used, but required to make this an extension method.</param>
/// <param name="text">The Markdown that should be transformed.</param>
/// <returns>The HTML representation of the supplied Markdown.</returns>
public static IHtmlString Markdown(this HtmlHelper helper, string text)
{
// Transform the supplied text (Markdown) into HTML.
var markdownTransformer = new Markdown();
string html = markdownTransformer.Transform(text);
// Wrap the html in an MvcHtmlString otherwise it'll be HtmlEncoded and displayed to the user as HTML :(
return new MvcHtmlString(html);
}
}