マスター ページにメニューを追加する作業を行っています。
サイトマップを作成してコントロールを追加したところ、次のエラーが発生しました:
コントロールにコード ブロック (つまり <% ... %>) が含まれているため、Controls コレクションを変更できません。
マスターページのコードは次のとおりです。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="~/master/template.master.cs" Inherits="template" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Enhancement</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<link href="<% = Page.ResolveUrl("~/css/master.css") %>" rel="Stylesheet" type="text/css" />
<link href="<% = Page.ResolveUrl("~/css/default.css") %>" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<!-- BEGIN: Sticky Header -->
<div id="header_container">
<div id="header">
<div id="headerBar">
<a href="<% = Page.ResolveUrl("~/default.aspx") %>">
<img src="<% = Page.ResolveUrl("~/images/logo.png") %>" id="logo" /></a>
<span id="header_text">Scrum Reports</span>
<asp:LoginStatus ID="LoginStatus1" runat="server" CssClass="login_status" LogoutAction="Redirect"
LogoutPageUrl="~/default.aspx" />
<asp:LoginName ID="LoginName1" runat="server" CssClass="login_user" />
</div>
</div>
<div id="Menu">
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1">
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</div>
</div>
<!-- END: Sticky Header -->
<!-- BEGIN: Page Content -->
<div id="container">
<div id="content">
<asp:ContentPlaceHolder ID="Main" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
<!-- END: Page Content -->
<!-- BEGIN: Sticky Footer -->
<div id="footer_container">
<div id="footer">
Developed by Application Solutions
</div>
</div>
<!-- END: Sticky Footer -->
</form>
</body>
</html>
次のタイプのコード ブロックが原因であることがわかりました。
<% = Page.ResolveUrl("~/css/default.css") %>
だから私の質問は、どうすればこれを回避できますか? リンクを正しく機能させるには上記のコードが必要ですが、メニュー コントロールも使用したいと考えています。