asp.net на мета-описании заголовка страницы обратной передачи не обновляется

На веб-странице asp.net есть кнопка asp:LinkButton. При нажатии я меняю заголовок страницы и добавляю метаописание, но оно не обновляется и не отражается в источнике просмотра страницы.

Название страницы и мета-описание обновляются только тогда, когда страница не PostBack

Является ли это дизайном или каким-либо обходным путем, кроме использования asp:HyperLink

Отредактировано: добавлен код

    protected void lnk_Click(object sender, EventArgs e)
    {
        HtmlMeta meta = new HtmlMeta();
        meta.Name = "description";
        meta.Content = "new descrpition";
        Page.Header.Controls.Add(meta);

        Page.Title = "new title of page";
    }

Спасибо


person toughcanny    schedule 30.03.2013    source источник
comment
Пожалуйста, опубликуйте также код, который вы используете для обновления.   -  person Code Rider    schedule 30.03.2013
comment
вы должны показать нам свой код...   -  person Daniele Armanasco    schedule 30.03.2013
comment
код добавлен в исходное сообщение, пожалуйста, дайте мне знать, если потребуется дополнительная информация   -  person toughcanny    schedule 30.03.2013
comment
я протестировал обновление метатегов и заголовка страницы. Вы написали код для обновления метатегов при загрузке страницы? если да то выложи.   -  person Code Rider    schedule 30.03.2013
comment
на Page_Load --› if (!Page.IsPostBack), тот же фрагмент кода, устанавливающий описание и заголовок, затем при нажатии кнопки ссылки я хочу обновить его с другим заголовком страницы и мета-описанием. но после нажатия кнопки ссылки он продолжает показывать исходный заголовок страницы и мета-описание.   -  person toughcanny    schedule 30.03.2013
comment
попробуйте использовать кнопку ссылки вместо asp:hyperlink. я думаю, что это не событие на стороне сервера.   -  person Code Rider    schedule 30.03.2013
comment
ну, я проверил то же, что и вы, с кнопкой ссылки. работает нормально. но не с asp:гиперссылка.   -  person Code Rider    schedule 30.03.2013
comment
Вы хотите использовать asp:hyperlink вместо asp:linkbutton? я знаю, что с гиперссылкой она работает, но не хочу менять текущую реализацию, так что в asp.net так задумано, что заголовок страницы и метаописание не могут быть изменены при обратной передаче. Потому что мне нужно какое-то веское обоснование для изменения этой реализации, поскольку это огромное приложение.   -  person toughcanny    schedule 30.03.2013
comment
нет, я думал, что вы используете asp: гиперссылку. Я рекомендую использовать asp:linkbutton. Здесь он отлично работает с asp:linkbutton. обновление метаинформации.   -  person Code Rider    schedule 30.03.2013
comment
не могли бы вы поделиться тем же кодом, который вы используете, позвольте мне проверить это на моей тестовой странице   -  person toughcanny    schedule 30.03.2013
comment
Я разместил. Это полезно для вас?   -  person Code Rider    schedule 30.03.2013


Ответы (1)


Я пробовал это с помощью asp: linkbutton. работает нормально.

Установка метаописания и заголовка для события page_load и его обновление для события linkbutton's click.

взгляните на мой код:

 <asp:LinkButton ID="link" runat="server" Text="Update Meta Info" 
        onclick="link_Click"></asp:LinkButton>

Здесь я публикую свой код:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        HtmlMeta meta = new HtmlMeta();
        meta.Name = "description11";
        meta.Content = "new descrpition11";
        Page.Header.Controls.Add(meta);
        Page.Title = "new title of page11";
    }
}

protected void link_Click(object sender, EventArgs e)
{
    HtmlMeta meta = new HtmlMeta();
    meta.Name = "description";
    meta.Content = "new descrpition";
    Page.Header.Controls.Add(meta);

    Page.Title = "new title of page";
}
person Code Rider    schedule 30.03.2013
comment
у меня это не работает, я думаю, единственная разница в том, что я использую UpdatePanel, можете ли вы проверить это с помощью панели обновления ‹asp:ScriptManager ID=ScriptManager1 runat=server› ‹/asp:ScriptManager› ‹asp:UpdatePanel ID=UpdatePanel2 runat =server ChildrenAsTriggers=true› ‹ContentTemplate› ‹asp:LinkButton ID=link runat=server Text=Update Meta Info OnClick=link_Click›‹/asp:LinkButton› ‹/ContentTemplate› ‹/asp:UpdatePanel› - person toughcanny; 30.03.2013
comment
это работает. почему вы поместили ссылку на панель обновлений. в соответствии с вашей кодовой страницей все равно загрузится. Пробовали без панели обновлений? - person Code Rider; 30.03.2013
comment
Без панели обновления это работает, в основном эта панель обновления находится на главной странице, и эта главная страница используется по количеству страниц, поэтому удаление панели обновления и создание новой главной страницы специально для этой страницы невозможно. У вас работает при использовании Linkbutton внутри Updatepanel? - person toughcanny; 30.03.2013
comment
До сих пор то, что я обнаружил и кажется неправильным при рендеринге (используя диспетчер сценариев и панель обновлений), поэтому на page_init я временно отключил EnablePartialRendering для false as protected void Page_Init(object sender, EventArgs e) { ScriptManager1.EnablePartialRendering = false; }......... Это не правильное решение, но временное и ищет правильное решение. - person toughcanny; 30.03.2013
comment
Я проверил это с помощью asp:ToolkitScriptmanager, но он не работает и тот же результат - person toughcanny; 30.03.2013