Наиболее подходящий подход "MVC-ish" для создания HTML-контента, который вы описываете, - это создание собственного метода расширения HtmlHelper. Этот метод должен использовать экземпляр System.Web.Mvc.TagBuilder для создания HTML. Вот пример (скопирован из одного из моих текущих проектов, но фактически не тестировался в изоляции):
using System.Web.Mvc;
using System.Linq;
public static class HtmlHelperExtensions
{
public static string Element(this HtmlHelper htmlHelper, string tag, string name, object htmlAttributes)
{
TagBuilder builder = new TagBuilder(tag);
builder.GenerateId(name);
builder.MergeAttributes(htmlAttributes);
// use builder.AddCssClass(...) to specify CSS class names
return builder.ToString()
}
}
// example of using the custom HtmlHelper extension method from within a view:
<%=Html.Element("iframe", "elementName", new { src = "[action url here]" })%>
Что касается расширения вашего собственного метода HtmlHelper для поддержки действия контроллера lambda, этот пост - хорошее место для начала.