Не уверен, что производная страница действительно имеет отношение к проблеме здесь, но натолкнулся на интересную ошибку в некотором коде, через который я сейчас работаю.
У меня есть собственный класс мастер-страницы, который выводитиз System.Web.UI.MasterPage, чтобы его можно было расширить с помощью дополнительных полезных свойств.
Страница, использующая эту мастер-страницу, имеет объявление вверху (обратите внимание на устанавливаемый заголовок страницы).
<%@ Page Language="C#" MasterPageFile="~/MasterPages/Landing.master" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="Index" Title="Welcome to the site" %>
Кроме того, на главной странице есть ссылки на таблицы стилей в заголовке, которые извлекаются из CDN, определенного в файле конфигурации.
<head id="Head1" runat="server">
<link rel="stylesheet" type="text/css" href="<%= CDN %>/css/main.css" />
</head>
Теперь приведенный выше пример, очевидно, не работаетпотому что атрибут runat в контейнере head означает, что кодовый блок в ссылке является статическим текстом и отображается в полученном html как есть.
Если я удаляю атрибут runat из head, CDN работает,но теперь я замечаю, что название больше не устанавливается.Если я отлаживаюсь и пытаюсь получить доступ к Page.Title в Immediate Window, я получаю исключение:
// Using the Title property of Page requires a header control on the page. (e.g. <head runat="server" />).
Итак, есть ли способ получить заголовок страницы из объявления, поставитьиметь собственный заголовок в заголовке и установить его из кода основной страницы, или есть лучший способ динамически установить домен CDN для таблиц стилей? Единственный способ, которым я могу это сделать, - это создатьцелые теги html-ссылок и добавьте их в элемент управления заголовка, но я подумал, что может быть более элегантное решение, поэтому сначала я задаю вопрос.