It didn't turn out to be as complicated as I originally thought.
A little caveat: this is not fully tested and is a simple example to make it work.
This is what I did:
~ / Views / Shared / _TemplateMaster.cshtml
<div class="editor-label"> <label for="@ViewData.ModelMetadata.PropertyName">@ViewData.ModelMetadata.GetDisplayName()</label> </div> <div class="editor-field"> @RenderSection("DataContent") </div> <div> @Html.ValidationMessage("") </div>
~ / Views / Shared / EditorTemplates / String.cshtml
@{ Layout = "~/Views/Shared/_TemplateMaster.cshtml"; } @section DataContent { @Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "" }) }
source share