Plantilla de editor ASP.NET MVC para propiedad

Por lo general, represento mis formularios mediante @ Html.RenderModel, pero esta vez tengo una lógica de representación compleja y la represento manualmente. Decidí crear una plantilla de editor para una propiedad. Aquí está el código (copia pegada de la implementación predeterminada de la plantilla del editor de objetos):

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% var modelMetadata = ViewData.ModelMetadata; %>
<% if (modelMetadata.HideSurroundingHtml) { %>
    <%= Html.Editor(modelMetadata.PropertyName) %>
<% } else { %>
    <% if (!String.IsNullOrEmpty(Html.Label(modelMetadata.PropertyName).ToHtmlString())) { %>
        <div class="editor-label"><%= Html.Label(modelMetadata.PropertyName) %></div>
    <% } %>
    <div class="editor-field">
        <%= Html.Editor(modelMetadata.PropertyName) %>
        <%= Html.ValidationMessage(modelMetadata.PropertyName) %>
    </div>
<% } %>

Y aquí es cómo lo uso:

@Html.EditorFor(x => x.SomeProperty, "Property") //"Property" is template above

Pero no funcionó: las etiquetas se representan independientemente de DisplayName y los editores no se representan en absoluto (en Watches Html.Editor (modelMetadata.PropertyName muestra una cadena vacía). ¿Qué estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta