Поддерживать постоянное название на сайте - PullRequest
4 голосов
/ 19 мая 2010

Если я создаю веб-сайт в ASP.NET, возможно ли программно установить заголовок страницы в виде некоторого предопределенного значения с добавленной дополнительной информацией? Например:

 Home Page   Title = Site Name
 Links       Title = Site Name: Links
 Stuff       Title = Site Name: Stuff

По сути, независимо от того, что я определил в качестве основного заголовка на странице, на которой я сейчас нахожусь, я хочу добавить ": Name" в конец заголовка, чтобы он оставался неизменным на всем сайте. Я думал о том, чтобы определить его как ContentPlaceHolder и обернуть вокруг него некоторую логику, но, похоже, он не работает так, как я думал (AKA, совсем нет).

Ответы [ 5 ]

0 голосов
/ 30 июня 2010

Хотя ответ Леркста будет работать для веб-форм ASP.NET, я пытаюсь сделать это через ASP.NET MVC. В результате для Site.Master отсутствует страница с выделенным кодом (как и не должно быть). Итак, после небольшого исследования я наткнулся на его пост Гийома Роя , в котором обсуждается, как использовать ActionFilterAttribute для использования контроллера в настройке этих данных (а представление «тупое» только оказывает) Это позволяет мне вставлять данные в представление и, таким образом, выполнять то, что я хотел сделать.

Надеюсь, это поможет кому-то еще!

0 голосов
/ 19 мая 2010

Если вы используете главную страницу, Lerxst ответ должен это сделать, если нет, у вас может быть BasePage, чтобы выполнить то, что вы хотите. Примерно так:

public abstract class BasePage : Page
{
  protected abstract string Subtitle { get; }
  protected BasePage()
  {
    Page.Load += (s, e) => { Title = "Site Name: " + Subtitle; };
  }}
0 голосов
/ 19 мая 2010

Это может ответить на ваш вопрос: 4гуйсфромролла ссылка

0 голосов
/ 19 мая 2010

попробуйте на главной странице

protected void Page_Load(object sender, EventArgs e)
{
PreRender += new EventHandler(MasterPage_PreRender);
}

void MasterPage_PreRender(object sender, EventArgs e)
{
Page.Title = "Site Name - " + Page.Title;
}

и поместите заголовок страницы в директиву @Page страницы содержимого (Title = "Blah", чтобы сделать его "Site Name - Blah")

0 голосов
/ 19 мая 2010

Expression Web имеет как динамические веб-шаблоны (в настоящее время мои любимые), так и мастер-страницы. DWT очень прост в использовании и делает именно то, что вы ищете, в режиме реального времени. Вы делаете один DWT (страница шаблона) для всего сайта, а затем на этой странице редактируемые области, которые можно редактировать, чтобы сделать все остальные ваши страницы уникальными. Кроме того, Expression Web отлично работает с другими продуктами и функциями MS (такими как Visual Studio и ASP.NET).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...