Дублирующиеся теги заголовка с помощью ASP.NET MasterPage

Я должен установить заголовок страницы динамично, и таким образом, я использую код, подобный следующему:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="~/about.aspx.cs" Inherits="Default" %>
<%@ Register Assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>
<%@ MasterType VirtualPath="MasterPage.master" %>
<%@ OutputCache Duration="43200" VaryByParam="*" Location="Server" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
 <title><%=pageTitle%></title>
</asp:Content>

Но это генерирует дублирующиеся теги заголовка. Есть ли какой-либо способ, которым я могу обойти это?Спасибо.

Править: Следуя из предложений ниже, у меня теперь есть следующее в моем MasterPage:

<head id="Head1" runat="server">
<title>Default Title</title>
...
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head> 

и следующее на моей основной странице:

    this.Title="xxx";

но я не получаю заголовка (ни "Заголовок По умолчанию", ни "xxx").

Править: Nevermind. Получил его работа с помощью того метода.

5
задан alpheus 20 January 2010 в 15:30
поделиться

5 ответов

Заголовок вашего .Master должен выглядеть следующим образом:

<head runat="server">
<title>Default Title</title>
  .. other tags
</head>

Тогда в вашей странице код сзади в Page_Load, вы пишете:

protected void Page_Load(object sender, EventArgs e)
{
    this.Title = "My Page Title";
}
8
ответ дан 18 December 2019 в 06:50
поделиться

Попробуйте это Вместо этого

        ((MyPageClass)Page).Title = "Your Page Title"

Этот код попадает в страницу Page_load вашей главной страницы. Я должен использовать актеры («MyPageClass»), потому что я получаю свой собственный PageClass, поэтому я могу положить настоятельно напечатанные объекты сеанса. Если вы этого не сделаете, то вам не понадобится актеры.

Если вам нужно сделать это на уровне страницы, я думаю, что вы можете просто использовать:

     Title = "Your Page Title"

в вашей странице_load.

0
ответ дан 18 December 2019 в 06:50
поделиться

Если на вашей главной странице Раздел заголовка выглядит следующим образом:
<% = onlylevariable%> </ title> </code></p> <p> Затем используйте это в качестве вашего кода: <br /> <code> <ASP: CONTENT ID = "CONTENT1" CONTENALLEERID = " "Runat =" сервер "> <% = pageTitle%> </ ASP: Content> </code></p> </div> <div class="votes-answer"> <div class="vote-count" itemprop="upvoteCount">0</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="18 December 2019 в 06:50 ">18 December 2019 в 06:50 </span> </div> <a class="s-link" href="/questions/344036/dublirujuschiesja-tegi-zagolovka-s-pomoschju-asp-net-masterpage#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-715217"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="715218" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p> При определении <code> <ASP: Content ContentPareHoldereerID = «Head»> </code> Control Вы не изменяете заголовка, который уже там, но вместо этого вы добавляете больше разметки на держатель места содержимого с ID "голова". На вашей главной странице я представлял, что у вас есть что-то подобное: </p> <pre><code><head> <title>Master Page Title</title> <asp:ContentPlaceHolder id="head" runat="Server" /> </head> </code></pre> <p>, так что <code> <ASP: ContentPaceHolder> </code> заменяется <code> <ASP: Content ContentLoLDereRid = «Глава»> </code> Итак, вы в конечном итоге со вторым <code> <Title> </code> элемент. </p> <p> Так что либо удалите <code> <title> </code> с вашей главной страницы - что означает, что вам понадобится <code> <Title> </code> в <em> все </em> Ваши файлы ASPX - или Используйте какой-нибудь код, чтобы сделать что-то вроде этого ... </p> <pre><code>this.Title = pageTitle; // if that doesn't do it try // this.Header.Title = pageTitle; </code></pre> </div> <div class="votes-answer"> <div class="vote-count" itemprop="upvoteCount">0</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="18 December 2019 в 06:50 ">18 December 2019 в 06:50 </span> </div> <a class="s-link" href="/questions/344036/dublirujuschiesja-tegi-zagolovka-s-pomoschju-asp-net-masterpage#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-715218"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div class="answer" id="788473" itemscope="" itemtype="http://schema.org/Answer"> <div class="answer-row"> <div class="answer-text"> <div class="description" itemprop="text"> <p>Чтобы избежать дублирования тегов, просто сделайте следующее, без дополнительного кода. </p> <p>На вашей MasterPage есть что-то вроде этого:</p> <pre><code><head> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> </code></pre> <p>И на каждой другой странице добавьте атрибут Title="Your Title" к директиве page:</p> <pre><code><%@ Page Title="Your Title" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> </code></pre> <p>Это устраняет дублирование тегов и помещает заголовок в ясное, видимое место сверху в представлении кода. </p> <p>Надеюсь, это поможет. </p> </div> <div class="votes-answer green"> <div class="vote-count" itemprop="upvoteCount">5</div><i class="fa fa-thumbs-o-up"></i> </div> <div class="clearfix"></div> <div class="action-time"> ответ дан <span title="18 December 2019 в 06:50 ">18 December 2019 в 06:50 </span> </div> <a class="s-link" href="/questions/344036/dublirujuschiesja-tegi-zagolovka-s-pomoschju-asp-net-masterpage#584" title="поделиться">поделиться</a> </div> <div class="post-layout--right"> <div id="comments-788473"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> </ul> </div> </div> </div> </div> <div style="margin-top: 20px;"> Другие вопросы по тегам: <div class="tags" style="display: inline-block; float: none;"> <a href="/questions/tagged/asp.net" class="tag" title="asp.net" rel="tag">asp.net</a> <a href="/questions/tagged/master-pages" class="tag" title="master-pages" rel="tag">master-pages</a> <a href="/questions/tagged/title" class="tag" title="title" rel="tag">title</a> </div> <h3 class="m-t-20">Похожие вопросы:</h3> <div class="related-block"> <ul> <li><div class='votes-answer green'><span class='vote-count'>46</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/131576/zakryvajutsja-skrytye-funkcii-asp-net" title="[Закрываются] скрытые функции ASP.NET">[Закрываются] скрытые функции ASP.NET</a> - 23 May 2017 01:54 </li> <li><div class='votes-answer green'><span class='vote-count'>31</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/2241/pri-ustanovlenii-soedineniya-s-z-ql-z-erver-2008-duplicate-proizoshla-svyazannaya-s-set-yu-ili-konkretnaya-oshibka-e-kzemplyara" title="При установлении соединения с SQL Server 2008 [duplicate] произошла связанная с сетью или конкретная ошибка экземпляра, ">При установлении соединения с SQL Server 2008 [duplicate] произошла связанная с сетью или конкретная ошибка экземпляра, </a> - 29 November 2016 13:23 </li> <li><div class='votes-answer green'><span class='vote-count'>31</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/2240/oshibka-podklyucheniya-z-ql-z-erver-pri-popy-tke-podklyucheniya-k-lokal-nomu-serveru-dublikat" title="Ошибка подключения SQL Server при попытке подключения к локальному серверу? [Дубликат] ">Ошибка подключения SQL Server при попытке подключения к локальному серверу? [Дубликат] </a> - 29 November 2016 13:23 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/12974/poluchenie-oshibki-vremeni-vy-polneniya-pri-popy-tke-vstavit-znacheniya-v-lokal-nuyu-bazu-danny-x-duplicate" title="Получение ошибки времени выполнения при попытке вставить значения в локальную базу данных [duplicate] ">Получение ошибки времени выполнения при попытке вставить значения в локальную базу данных [duplicate] </a> - 29 November 2016 13:23 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/2952/poluchenie-oshibki-pri-zagruzke-stranicy-dlya-opredelennogo-identifikatora-dublikat" title="получение ошибки при загрузке страницы для определенного идентификатора [дубликат] ">получение ошибки при загрузке страницы для определенного идентификатора [дубликат] </a> - 3 September 2017 16:06 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/2246/soobshhenie-ob-oshibke-svyazannoe-s-z-ql-z-erver-duplicate" title="Сообщение об ошибке, связанное с SQL Server [duplicate] ">Сообщение об ошибке, связанное с SQL Server [duplicate] </a> - 29 November 2016 13:23 </li> <li><div class='votes-answer green'><span class='vote-count'>30</span> <i class="fa fa-thumbs-o-up"></i></div> <a href="/questions/2962/kak-razreshit-e-tu-oshibku-nullreferenceexception-ssy-lka-na-ob-ekt-ne-ustanovlena-v-e-kzemplyar-ob-ekta-duplicate" title="Как разрешить эту ошибку NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта [duplicate] ">Как разрешить эту ошибку NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта [duplicate] </a> - 3 September 2017 16:06 </li> </ul> </div> </div> </div> </div> </div> <aside class="sidebar"> <div class="awrap"> <script async src="https://yastatic.net/pcode-native/loaders/loader.js"></script> <script> (yaads = window.yaads || []).push({ id: "553274-2", render: "#id-553274-2" }); </script> <div id="id-553274-2"></div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:600px" data-ad-client="ca-pub-2355906945027976" data-ad-slot="8038370725"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </aside> </div> </div> <footer class="footer"> <div class="wrapper wrapper--sm"> <div class="footer-navs-col"> <div class="footer-nav footer-nav--menu"> <div class="footer-coryright">© 2017 - 2020 Вопросы и ответы по программированию</div> </div> <div class="footer-nav footer-nav--catalog"> </div> </div> <div class="footer-contacts-col"> <div class="soc-widget-col"> </div> </div> <div class="clearfix"></div> </div> </footer> </div> <script type="text/javascript" src="/js/ui/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="/js/ui/external/jquery.cookie.js"></script> <script type="text/javascript" src="/js/versions/menu.ru.u1607887878.js"></script> <script type="text/javascript" src="/js/jquery.fancybox.min.js"></script> <script type="text/javascript" src="/js/slick.min.js"></script> <script type="text/javascript" src="/js/jquery.maskedinput.min.js"></script> <script type="text/javascript" src="/js/versions/scripts.ru.u1607887878.js"></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(90030325, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/90030325" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-123993370-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-123993370-1'); </script> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "name": "Программирование - вопросы и ответы", "alternateName": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "potentialAction": { "@type": "SearchAction", "target": "https://legkovopros.ru/search?search={search_term_string}", "query-input": "required name=search_term_string" } } { "@context": "https://schema.org", "@type": "Organization", "name": "Программирование - вопросы и ответы", "url": "https://legkovopros.ru", "logo": "https://legkovopros.ru/i/logo.png", "email": "info@legkovopros.ru", "telephone": "" } </script> </body> </html>