2014-10-15 6 views
0

우선, 저는 asp.net을 처음 사용했습니다. Visual Studio 2013에서 제공하는 기본 콘텐츠를 사용하여 Web Forms 응용 프로그램에서 작업하고 있습니다.마스터 페이지가 올바르게로드되지 않았습니다. 뒤로

시나리오 : 버튼을 클릭 한 후 히스타민 (h2)의 텍스트를 변경하고 싶습니다.

문제점 : Visual Studio에서 제공하는 기본 마스터 페이지를 사용하고 있지만 포스트 백에서 제대로로드되지 않았습니다. 내가 레이아웃에 사용하는 리소스에 액세스 할 수 없다고 말할 수 있습니까? 나는 내가 무엇을 잘못하고 있는지 완전히 확신하지 못한다. 누군가가 나를 계몽 할 수 있다면 나는 그것을 대단히 감사 할 것입니다. 지금까지

내 코드 :

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

부수적으로 더 의미있는 요소 ID를 사용하십시오. ID가'h1' 인'h2' 태그는 혼란 스럽습니다. 기꺼이 이것은 단순한 예제입니다. –

답변

0

, 대신 <h2> 서버 컨트롤을 사용하여, 당신은 다음과 같이 헤더 태그 내 레이블 또는 리터럴 컨트롤 같은 것을 포장 할 수 있습니다 다음

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

에서 코드 숨김을 사용하면 다음을 수행 할 수 있습니다.

HeaderLiteral.Text = "Hello World!"; 

개인 설정이지만 일반적으로 서버 컨트롤을 사용하지 않습니다. 특별히 이유는 없지만 완전성을 위해이 제안을합니다.

관련 문제