Я создаю настраиваемый метод include (load), чтобы проверить, существует ли файл. Функция загрузки включает файл, если он существует, или отправляет электронное письмо, чтобы уведомить меня о неработающей ссылке, если это не так. Проблема, с которой я столкнулась, заключается в том, что если файл include содержит серверные элементы управления, он просто отображает их как обычный текст. Это проблема, если я попытаюсь добавить файл include в файл include.Response.Write on Server Controls
В default.aspx у меня есть:
<% ResourceMngr.load("~/Includes/menu.inc"); %>
В ResourceMngr:
public static void load(String url) {
string file = HttpContext.Current.Server.MapPath(url);
if (System.IO.File.Exists(file))
{
HttpContext.Current.Response.Write(System.IO.File.ReadAllText(file));
}
else
{
String body = "This message was sent to inform you that the following includes file is missing: \r\n";
body += "Referrer URL: " + HttpContext.Current.Request.Url.AbsoluteUri + "\r\n";
body += "File Path: " + file;
MailUtil.SendMail("[email protected]", "Missing Includes File", body);
}
}
Так что, если "menu.inc" также включает в себя <% ResourceMngr.load("~/Includes/test.inc"); %>
тег, он просто выводит его в виде обычного текста на странице вместо того, чтобы пытаться включить test.inc, пока все остальные html на странице отображаются точно так, как ожидалось. Как я могу позволить моему включенному файлу иметь серверные элементы управления?
Когда я пытаюсь использовать элементы управления пользователями, я получаю ту же проблему, что и раньше. Например, <% @ Control Language = "C#" AutoEventWireup = "true" CodeFile = "menu.ascx.cs" Inherits = "Includes_menu"%> отображается вверху моей страницы в виде открытого текста. Я также попытался иметь веб-элементы управления внутри