Кастомные токены в движке? - PullRequest
0 голосов
/ 22 июня 2010

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

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

В PagesController:

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

Я хочу, чтобы механизм просмотра искал представление в каталоге: / Views / Pages / [folder] /

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

Ответы [ 2 ]

0 голосов
/ 22 июня 2010

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

Локализация с отдельными языковыми папками в представлениях

0 голосов
/ 22 июня 2010

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

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));
}
...