Следующее должно позволить вам не копировать и не вставлять код.
Вариант 1
Поскольку вы используете MVC, создайте HTML Helper. Вот так:
namespace [ProjectName].Web.Views
{
public static class HtmlHelpers
{
public static MvcHtmlString GetFullPageTitle(this HtmlHelper helper, string PageTitle)
{
return MvcHtmlString.Create(PageTitle + " - " + WebsiteSettings.WebsiteName)
}
}
}
Теперь на вашей мастер-странице просто поместите это
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
Тогда на ваших страницах используйте это
<asp:Content ID="PageTitleContent" ContentPlaceHolderID="TitleConent" runat="server">
<%=Html.GetFullPageTitle("Some PageTitle")%>
</asp:Content>
Вариант 2
Примечание: если вы заполняете данные в своем действии, вам не нужно добавлять их на любую страницу.
Вот так:
public ActionResult myAction()
{
ViewData["Title"] = "MyActionTitle";
return View()
}
Тогда на вашей главной странице вы просто сделаете следующее
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /><%= ViewData["Title"] + "-" + WebsiteSettings.WebsiteName %></asp:ContentPlaceHolder></title>
Приятно то, что если вы хотите, вы можете изменить то, что написано в заголовке на каждой странице, выполнив это
<asp:Content ID="PageTitleContent" ContentPlaceHolderID="TitleConent" runat="server">
My Override Title
</asp:Content>