不確定派生頁面是否與這裏的問題實際相關,但在我正在處理的一些代碼中遇到了一個有趣的問題。asp.net派生的主頁面,頁面標題和動態CSS鏈接
我有一個自定義masterpage類,它從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屬性意味着在該鏈接的代碼塊靜態文本,並原樣呈現,在生成的HTML。
如果我從頭上刪除runat屬性,CDN的作品,但現在我注意到,標題不再被設置。如果我調試,並嘗試訪問Page.Title在立即窗口,我得到一個異常:
// Using the Title property of Page requires a header control on the page. (e.g. <head runat="server" />).
所以,是有一種方式來獲得從聲明的頁面標題,把我自己的標題佔位符頭部並從主頁面代碼隱藏中設置它,或者,有沒有更好的方法來動態設置樣式表的CDN域?我認爲我可以做到的唯一方法是構建完整的html鏈接標記並將其附加到標題控件,但我認爲可能會有更優雅的解決方案,所以我先問這裏。