2012-03-23 3 views
0

У меня есть сайт ASP.NET MVC 2, который нуждается в возможности поддержки настраиваемых страниц, добавленных на сайт после развертывания. До сих пор я создал маршрут для пользовательских страниц:Настройка сайта ASP.NET MVC 2 после развертывания

routes.MapRoute("Page", "Page/{name}", new { controller = "Custom", action = "Page" }); 

и добавил действие контроллера:

public ActionResult Page(string name) { 
    return View(@"~\Content\Custom\Pages\" + name +".aspx"); 
} 

Это прекрасно работает. Он отображает любую страницу, которую я поместил в папку ~ \ Content \ Custom \ Pages по имени. Проблема заключается в том, что нет никакой возможности добавить дополнительную дополнительную логику кода на страницу, если я не встрою ее в самую страницу, и я хотел бы избежать добавления добавления логики заднего плана в представление.

Есть ли способ динамически добавлять контроллер без излишней суеты?

Любое решение должно быть в состоянии пережить обновление развертывания, поэтому изменение web.config или любого другого развернутого файла не представляется возможным.

ответ

1

Во время выполнения вы можете редактировать страницу контроллера с помощью необходимого кода. Это не потребует каких-либо изменений конфигурации, поскольку контроллер будет перекомпилирован во время выполнения.

Например: Вы можете открыть новую StreamWriter и добавить код для вызова модели во время выполнения от контроллера

string newLine = "\t\tModels." + AppName + 
    "DataContext context = new Models." + AppName + 
    "DataContext();\n\t\treturn View(context." + AppName + "s);"; 
result.WriteLine(newLine); 
Смежные вопросы