Я пишу cms с MVC, который используется в качестве основного механизма для создания страниц.Почему представление MVC должно существовать в каталоге View для работы?
У меня все хорошо, но мне нужна была возможность создать уникальный шаблон бритвы для каждого сайта и, возможно, для представления, если нужно.
Мои правила заключаются в том, что каждый проект должен иметь уникальный код, который связан с URL-адресом.
Активы для каждого сайта проекта хранятся таким образом, что местоположение относится к проекту.
Таким образом, активы, связанные с проектом C0001, будут храниться в assets\C0001\
и для C0002: assets\C0002\
и так далее.
Что я хотел сделать, чтобы сохранить порядок вещей, было иметь шаблоны бритвы, связанные с проектом, расположенным в местоположении assets\[ProjectCode]
, но проблема в том, что я получаю сообщение об ошибке ViewBag not existing in context
.
Так что это не будет работать:
Layout = string.Concat("~/assets/",ViewBag.ProjectNumber,"/_Layout.cshtml");
Где, как следующий будет оказывать страницу:
Layout = string.Concat("~/Views/Shared/_",ViewBag.ProjectNumber,"Layout.cshtml");
Я предполагаю, что первый макет оленьей кожи делает, потому что он находится за пределами познаваемого искать области для просмотров? Но, как я говорю, где находится файл, я не понимаю, в чем проблема?
Я счастлив работать с кодом, приведенным в примере 2, но может означать, что после небольшого количества сайтов проекта общий вид видов будет очень занят.
Просто интересно, есть ли причина, по которой виды должны существовать в каталоге Views
?
Вы должны использовать области. – SLaks
@marcind: ваше право, спасибо за исправление –