Шаблоны справочного отображения / редактора в разных проектах - PullRequest
1 голос
/ 15 ноября 2011

У меня есть приложение ASP.NET MVC 3 с двумя областями, которые являются отдельными проектами, на которые ссылается основное приложение.Оба проекта области находятся в каталоге областей основного приложения.Мне было интересно, могу ли я вызвать DisplayTemplates из одной области в другой.

Например, я добавил следующий шаблон в файл ~ / Areas / Area1 / Views / Shared / DisplayTemplates / Test.cshtml:

@model string
Test Display Template

Теперь в представлении проекта Area2 я говорю:

@Html.Display("Test", "~/Areas/Area1/Views/Shared/DisplayTemplates/Test.cshtml")

Но он ничего не отображает.Мне было интересно, если кто-то может дать мне знать, если это возможно, и что я делаю неправильно.

Спасибо

1 Ответ

3 голосов
/ 15 ноября 2011

Если вы хотите поделиться шаблонами между областями, поместите шаблон в корневой каталог View.

Вместо;

/Areas/Area1/Views/Shared/DisplayTemplates/Test.cshtml

Поместите это здесь;

/Views/Shared/DisplayTemplates/Test.cshtml

Кроме того, второй аргумент вашего вызова вспомогательного метода Display;

@Html.Display("Test", "~/Areas/Area1/Views/Shared/DisplayTemplates/Test.cshtml")

Должно быть это;

@Html.Display("Test", "Test")

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

...