我有一個主頁,其中定義了元標記名稱和描述。如果我這樣做,我無法使頭部使用runat="server"
,因爲我在使用URL路由時遇到了一些問題。動態更改元標記時出現錯誤
我想要動態更改網站中某個子頁面的元描述。我曾經嘗試這樣做:
HtmlHead headTag = (HtmlHead)this.Header;
HtmlMeta pageMetaTag = new HtmlMeta();
pageMetaTag.Name = "Description";
pageMetaTag.Content = "Test";
headTag.Controls.Add(pageMetaTag);
但我上添加行的錯誤,他說:
Object reference not set to an instance of an object.
了HEAD內容保持<head runat="server"></head>
爲子頁面,該頁面運行,但meta描述標籤未被覆蓋。 meta描述相同的母版頁的... 請幫助我解決這個問題....
使用:ASP.NET 4 VS2010
更新(子頁面看起來很相像):
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Profile.aspx.cs" Inherits="Profile"%>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<head runat="server"></head>
<style type="text/css" runat="server">
.lnkbtn
{
color: #000080;
cursor:pointer;
}
.lnkbtn:hover
{
color: #800000;
text-decoration: underline;
}
</style>
<link rel="stylesheet" type="text/css" href='<%= ResolveUrl("~/css/back.css") %>'/>
<script type="text/javascript" src='<%= ResolveUrl("~/css/front.js") %>'></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
// contains
// update panel
// webpartmanager
// webpartzones
</asp:Content>
更新(頭嵌套頭標籤內得到)
在使用Page.MetaDescription = "Hi How are you";
以下是頁面的源代碼:
<head>
<titleMaster Page Title</title>
<meta name="Keywords" content="Master page keywords" />
<meta name="description" content="Master page meta description." />
.
.
.
<head><title>Child page Title</title>
<meta name="description" content="Hi How are you" /></head>
.
.
.
</head>
什麼asp.net版本您使用的? – Pleun
@Pleun在VS2010中的ASP.NET 4 – Jayesh
好的,在這種情況下應該很容易,看到我的答案在下面 – Pleun