Включить ASP.NET страницы из C # - PullRequest
1 голос
/ 02 ноября 2010

В типичном веб-фреймворке

func viewHomepage()
    response.write(template.render("a string variable", ["an", "array"]))

- это довольно стандартный способ вызова шаблонизатора и записи выходных данных.

Очевидно, что в ASP.net ситуация обратная, поскольку шаблонизатор находится перед кодом.

Я имею дело с устаревшим приложением, которое нельзя переписать. В основном это 50 строк xxx.aspx с соответствующими 20 000 LOC xxx.aspx.cs. Я хочу написать новые «представления» в виде отдельных форм и элементов управления ASP.net, а затем включить их обратно в xxx.aspx.cs.

По существу, вместо того, чтобы делать:

case "newfeature":
{
    Response.Write("<table>");
    ...
    Response.Write("</table>");
}
break;

Я хочу сделать

case "newfeature":
    Response.Write(THEFUNCTIONIMLOOKINGFOR("newfeature.aspx"));
break;

Таким образом, будет некоторое представление о модульности, и оно не будет напоминать Perl CGI-скрипт.

Покажите мне путь к здравомыслию довольно-пожалуйста.

1 Ответ

2 голосов
/ 02 ноября 2010

Это можно сделать довольно просто, вызвав метод RenderControl. Вам просто нужно передать его HtmlTextWriter экземпляр.

Техника описана здесь: 4GuysFromRolla.com «Отправка по электронной почте отрендеренного вывода веб-элемента управления ASP.NET»

Существует также справочник MSDN для метода RenderControl .

...