Загрузить вид из-за пределов папки видов - PullRequest
1 голос
/ 31 мая 2011

Я работаю над менеджером виджетов для asp.net mvc, и чтобы заставить работать основную часть, мне нужно загрузить вид из-за пределов папки представлений по умолчанию. Я получил следующую структуру папок:

... - Просмотры - виджеты | - Просмотров

Мне нужно загрузить вид изнутри ~ / Виджеты / Виды Я не уверен, должен ли я писать Viewengine с нуля или делать что-то еще, поэтому, пожалуйста, не стесняйтесь отвечать:)

p.S. Менеджер виджетов называется S3WidgetManager и его можно найти на GitHub

1 Ответ

2 голосов
/ 31 мая 2011

Вы можете написать пользовательский механизм просмотра и поэкспериментировать со следующими базовыми свойствами, которые позволяют настраивать расположение представлений:

base.ViewLocationFormats
base.PartialViewLocationFormats
base.MasterLocationFormats
base.AreaViewLocationFormats
base.AreaPartialViewLocationFormats
base.AreaMasterLocationFormats

А вот их значения по умолчанию:

base.AreaViewLocationFormats = new string[] 
{ 
    "~/Areas/{2}/Views/{1}/{0}.cshtml", 
    "~/Areas/{2}/Views/{1}/{0}.vbhtml", 
    "~/Areas/{2}/Views/Shared/{0}.cshtml", 
    "~/Areas/{2}/Views/Shared/{0}.vbhtml" 
};
base.AreaMasterLocationFormats = new string[] 
{ 
    "~/Areas/{2}/Views/{1}/{0}.cshtml", 
    "~/Areas/{2}/Views/{1}/{0}.vbhtml", 
    "~/Areas/{2}/Views/Shared/{0}.cshtml", 
    "~/Areas/{2}/Views/Shared/{0}.vbhtml" 
};
base.AreaPartialViewLocationFormats = new string[] 
{ 
    "~/Areas/{2}/Views/{1}/{0}.cshtml", 
    "~/Areas/{2}/Views/{1}/{0}.vbhtml", 
    "~/Areas/{2}/Views/Shared/{0}.cshtml", 
    "~/Areas/{2}/Views/Shared/{0}.vbhtml" 
};
base.ViewLocationFormats = new string[] 
{ 
    "~/Views/{1}/{0}.cshtml", 
    "~/Views/{1}/{0}.vbhtml", 
    "~/Views/Shared/{0}.cshtml", 
    "~/Views/Shared/{0}.vbhtml" 
};
base.MasterLocationFormats = new string[] 
{ 
    "~/Views/{1}/{0}.cshtml", 
    "~/Views/{1}/{0}.vbhtml", 
    "~/Views/Shared/{0}.cshtml", 
    "~/Views/Shared/{0}.vbhtml" 
};
base.PartialViewLocationFormats = new string[] 
{ 
    "~/Views/{1}/{0}.cshtml", 
    "~/Views/{1}/{0}.vbhtml", 
    "~/Views/Shared/{0}.cshtml", 
    "~/Views/Shared/{0}.vbhtml" 
};
base.FileExtensions = new string[] 
{ 
    "cshtml", 
    "vbhtml" 
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...