Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Appending to default title in asp.net masterpage

I am using the MVC to add a title to the masterpage with a content place holder. The default MVC masterpage template uses the following code:

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server"/></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

When I try to add defaulted text to the front of the content holder, it doesn't show the text in the final rendered page. I am trying to get the page to show a default title with appended contentplaceholder text.

Example:
(Default Text) (ContentPlaceHolder Text)
My Page - About Us

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>My Page - <asp:ContentPlaceHolder ID="TitleContent" runat="server"/></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

I am looking for a way to accomplish this without having to use code behind. Any ideas?

like image 541
Aaron Avatar asked Nov 28 '22 20:11

Aaron


2 Answers

It seems we should use

<asp:Literal runat="server" Text=" - MySite" />

instead of

<asp:LiteralControl runat="server" Text=" - MySite" />

mentioned in the article, because otherwise we get "Unknown server tag" error.

like image 94
Alexander Prokofyev Avatar answered Dec 10 '22 06:12

Alexander Prokofyev


After looking further, Phil Haack actually posted an article which was a solution to my question. It can be found at Haacked.

In summary he said that everything that is rendered in the head is rendered as a control, and the fix for my question above is to put an asp literal control in the title to have it correctly generate the text.

<%@ Master ... %>
<html>
<head runat="server">
  <title>
    <asp:ContentPlaceHolder ID="titleContent" runat="server" /> 
    <asp:LiteralControl runat="server" Text=" - MySite" />
  </title>
</head>
...
like image 40
Aaron Avatar answered Dec 10 '22 04:12

Aaron