Можно ли использовать DisplayFor () из шаблона управления EditorFor - PullRequest
6 голосов
/ 31 января 2011

Я использую EditorFor() помощник для визуализации шаблона редактирования в моем представлении, и я хотел бы вызвать DisplayFor() внутри этого шаблона для визуализации шаблона отображения.

Как это

это внутри /Shared/EditorTemplates/Client.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BusinessNext.Models.Ef.Client>" %>
<%: Html.DisplayFor(client=>client) %>

В шаблоне DisplayFor я отображаю свойства клиента.Шаблон DisplayFor отлично работает, когда вызывается откуда угодно, но из шаблона EditorFor он ничего не отображает.Кажется, что вызов DisplayFor() на самом деле никогда не попадает в шаблон DisplayFor.

Ответы [ 2 ]

4 голосов
/ 31 января 2011

Боюсь, что единственный способ - использовать частичное:

<%= Html.Partial("~/Views/Home/DisplayTemplates/Client.ascx", Model) %>
1 голос
/ 13 февраля 2013

Это может быть спорным, если это хорошая идея для шаблонирования сложных объектов, или если мой подход к вложенным шаблонам взломать или нет. Преимуществом этого является наличие одного шаблона для родительского и дочернего, которые могут иметь шаблоны вместо того, чтобы выбирать / использовать частичные представления.

Все это, кроме того, шаблонные представления могут быть вложенными, если вы используете частичное представление для перехода.

Внешний шаблон будет иметь что-то вроде ниже, где вы хотите разместить внутренний шаблон:

Html.RenderPartial("SharedDisplayGoBetweenForFoo", item);  

Общая часть будет выглядеть так:

@model Foo

@Html.DisplayFor(a => a);

Тогда будет вызван внутренний шаблон, который будет выглядеть как любой другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...