Я заметил это, когда использовал следующее в моем представлении:
<% Html.RenderPartial(MVC.Shared.Views.EditorTemplates.ClientOnDocuments); %>
Строка выше возвращает только имя представления, поэтому в этом случае ClientOnDocuments
. Затем включается механизм представления по умолчанию и пытается найти ClientOnDocuments.ascx
в папке текущего представления и в общей папке, но не в папках DisplayTemplates
и EditorTemplates
.
Поскольку я довольно далеко продвинулся в использовании T4MVC, я не хочу выводить его или смешивать разные стили ссылочных представлений (например, вышеприведенное работает, если мы указываем путь к шаблону).
Причина в этом коде, который генерирует T4MVC:
public class ViewNames {
...
public readonly string FirmHeader = "~/Views/Shared/FirmHeader.ascx";
public readonly string PostsSelector = "~/Views/Shared/PostsSelector.ascx";
static readonly _DisplayTemplates s_DisplayTemplates = new _DisplayTemplates();
public _DisplayTemplates DisplayTemplates { get { return s_DisplayTemplates; } }
public partial class _DisplayTemplates{
public readonly string ClientOnDocuments = "ClientOnDocuments";
public readonly string DateTime = "DateTime";
}
static readonly _EditorTemplates s_EditorTemplates = new _EditorTemplates();
public _EditorTemplates EditorTemplates { get { return s_EditorTemplates; } }
public partial class _EditorTemplates{
public readonly string ClientOnDocuments = "ClientOnDocuments";
public readonly string DateTime = "DateTime";
public readonly string PostCode = "PostCode";
}
Вы можете видеть, что с представлением, содержащимся в Shared root, все в порядке, но, очевидно, он плохо обрабатывает подпапки.
Я знаю, что мог бы изменить файл шаблона T4MVC, но на самом деле хотел бы получить от David Ebbo ответ о том, собирается ли он изменить / исправить это.
Надеюсь, он следует ТАК, по крайней мере, я видел его здесь в декабре.