2010-06-22 1 views
0

В проекте ASP.NET MVC 2, как я могу начать писать настраиваемый механизм просмотра, который позволяет использовать пользовательские маркеры при поиске представлений?Пользовательские маркеры в режиме просмотра?

В частности, я пытаюсь достичь этого:

В PagesController:

public ActionResult ViewPage(string folder, string page) 
{ 
    return View(folder, page); 
} 

Я хочу вид двигателя для поиска вида в каталоге:/Views/Страницы/[Папка]/

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

ответ

0

Для решения этой проблемы вам не нужно реализовывать свой собственный просмотр. Вы можете просто указать путь к нужному виду. Что-то вроде этого:

return View("~/Views/Pages/FolderName/ViewName.aspx"); 

Вы пример может выглядеть примерно так:

public ActionResult ViewPage(string folder, string page) { 
    return View(string.Format("~/Views/Pages/{0}/{1}.aspx", folder, page)); 
} 
+0

Да, я понимаю, что я могу сделать это и в самом деле, это то, что я делаю прямо сейчас. Я хотел бы иметь возможность использовать механизм просмотра, если это возможно. –

+0

@Brian Vallelunga, Почему вы хотите это сделать? Возможность передачи местоположения вида, как это, является функцией viewengine. Зачем это дублировать? Скорее всего, это приведет к тому, что код будет менее ремонтопригодным. –

+0

Я думаю, вы правы в этом случае. Например, вы не получаете автоматическую проверку 404. Впрочем, этого достаточно легко добавить. –

0

Если эти значения изменяются по запросу (... похоже, что), то вам нужно переписать CreateView. Я не сделал это сам, но в одном вопросе о СЦ кто-то сказал, его можно:

Localization with separate Language folders within Views

 Смежные вопросы

  • Нет связанных вопросов^_^