2014-10-15 3 views
0

Прежде всего, я очень новичок в asp.net (несколько дней опыта). Я использую контент по умолчанию, предоставляемый Visual Studio 2013 для работы с приложением веб-форм.Главная страница не загружена правильно на postBack

Сценарий: Я бы хотел изменить текст гистамина (h2) после нажатия кнопки.

Проблема: Я использую главную страницу по умолчанию, предоставленную Visual Studio, но она не загружена правильно в postBack. Из того, что я могу сказать, ресурсы, которые он использует для своего макета, не могут быть доступны? Я не совсем уверен, что я делаю неправильно. Если бы кто-нибудь мог просветить меня, я бы очень это оценил.

Мой код до сих пор:

Default2.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 

<asp:Content runat="server" ContentPlaceHolderID="MainContent"> 
    <h2 id="h1" runat="server">Change me please.</h2> 
    <asp:Button ID="b1" Text="Submit" runat="server" OnClick="dothis" /> 
</asp:Content> 

Default2.aspx.cs:

public partial class Default2 : Page 
{ 
    protected void dothis(object sender, EventArgs e) 
    { 
     Header.InnerHtml = "Hello world."; 
    } 
} 
+0

попробуйте, h1.InnerHtml = "Hello world."; – bashkan

+0

На боковой ноте используйте более значимые идентификаторы элементов. Тег 'h2' с идентификатором' h1' просто запутан. С надеждой это просто упрощенный пример, который вы даете. –

ответ

0

В качестве альтернативы, вместо того чтобы использовать элемент управления <h2> сервера, вы можете обернуть что-то вроде этикетки или буквального контроля внутри тега заголовка, например:

<h2><asp:LiteralControl runat="server" id="HeaderLiteral">Change me please</asp:LiteralControl></h2> 

Тогда в ваш код-позади вы можете сделать это:

HeaderLiteral.Text = "Hello World!"; 

Личные предпочтения, но я вообще уклоняюсь от управления сервером. Нет особой причины, но предлагаю это предложение для полноты.

Смежные вопросы