Я заметил это, когда я использовал следующие на мой взгляд:T4MVC не поддерживает DisplayTemplates и EditorTemplates
<% 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";
}
Вы можете видеть, что с точки зрения содержащейся в общей корневой все нормально, но, видимо, он не обрабатывает вложенные папки хорошо.
Я знаю, что могу изменить файл шаблона T4MVC, но на самом деле хотел бы получить ответ от David Ebbo о том, собирается ли он изменить/исправить это.
Надеюсь, он следует за этим, по крайней мере, я видел его здесь в декабре.
Что было бы лучше, это иметь два класса: ViewNames (которые будут содержать только имена представлений) и ViewPaths, которые будут содержать пути, таким образом мы получим доступ к строго типизированным именам и путям. – mare