๐ ๋ชฉ์ฐจ
1. MasterPage๋?
ASP.NET Web Form์์๋ ์ฌ๋ฌ ํ์ด์ง์์ ๋ฐ๋ณต๋๋ UI ์์๋ค (์๋ฅผ ๋ค๋ฉด ํค๋, ๋ฉ๋ด, ํธํฐ, ์คํฌ๋ฆฝํธ ๋ฑ..)์ ํ ๊ณณ์์ ํตํฉ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ธ MasterPage๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ง์คํฐํ์ด์ง๋ ์น์ฌ์ดํธ ์ ์ฒด์ ๊ณตํต ๋ ์ด์์(ํ) ์ ์ ์ํ๋ HTML๊ตฌ์กฐ์ ๋๋ค.
๊ฐ ํ์ด์ง๋ ํด๋น ํ์ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ฝํ ์ธ ๋ง ์ฑ์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๐ฌ ์ฝ๊ฒ ๋น์ ํ์๋ฉด?
- MasterPage = ์น์ฌ์ดํธ์ ์ค๊ณ๋
- ContentPlaceHoder = ๋น์ด ์๋ ์บ๋ฒ์ค
- ์์ํ์ด์ง = ๊ทธ ์บ๋ฒ์ค์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๊ฐ๋ณ ์ฝํ ์ธ ํ์ด์ง
์ฆ, Main.master๋ง ์์ ํ๋ฉด ๋ชจ๋ ํ์ด์ง์ ๊ณตํต์ผ๋ก ๋ฐ์๋๊ธฐ ๋๋ฌธ์ ์ ์ง๋ณด์๊ฐ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค!
2. ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ
2-1. ๋ง์คํฐํ์ด์ง ์ ์ธ๋ถ
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="Master_Main" %>
ํญ๋ชฉ | ์ค๋ช |
Master | ์ด ํ์ผ์ด ๋ง์คํฐํ์ด์ง์์ ์ ์ธ |
CodeFile | ์ฐ๊ฒฐ๋ C# ์ฝ๋๋นํ์ธ๋ ํ์ผ(Main.master.cs) |
Inherits = "Master_Main" | ์ด ๋ง์คํฐํ์ด์ง๊ฐ ์์๋ฐ๋ ํด๋์ค๋ช |
2-2. ์์ ํ์ผ ๊ตฌ์กฐ
/Views
โโโ Master/
โ โโโ Main.master ← ๊ณตํต ๋ ์ด์์ ์ ์
โโโ Pages/
โ โโโ Home.aspx ← ์ค์ ์ฝํ
์ธ ๊ฐ ๋ค์ด๊ฐ ํ์ด์ง
3. ๋ง์คํฐํ์ด์ง ์์ ์ฝ๋
์๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ Main.master ๊ตฌ์กฐ ์์์ ๋๋ค.
<%@ Master Language="C#" CodeFile="Main.master.cs" Inherits="Master_Main" %>
<html>
<head runat="server">
<title>Sample Site</title>
<link rel="stylesheet" href="/css/site.css" />
<script src="/js/common.js"></script>
</head>
<body>
<form runat="server">
<!-- ๊ณตํต ์๋จ ๋ฉ๋ด -->
<div class="header">
<a href="/" class="logo">MySite</a>
<asp:LinkButton ID="lbtLogin" runat="server">๋ก๊ทธ์ธ</asp:LinkButton>
<asp:LinkButton ID="lbtLogout" runat="server">๋ก๊ทธ์์</asp:LinkButton>
</div>
<!-- ํ์ด์ง ๊ฐ๋ณ ์ฝํ
์ธ ๊ฐ ๋ค์ด๊ฐ ์์น -->
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
<!-- ๊ณตํต ํ๋จ ํธํฐ -->
<div class="footer">
<p>© 2025 MyCompany. All rights reserved.</p>
</div>
</form>
</body>
</html>
4. ํต์ฌ: ContentPlaceHolder๋?
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
- ๋ง์คํฐํ์ด์ง์์ ์ฝํ ์ธ ๋ฅผ ์ฝ์ ํ ์ ์๋ ์๋ฆฌ์ ๋๋ค.
- ๊ฐ ์์ ํ์ด์ง์์๋ ์ด ์์ญ์๋ง ์์ ๋ง์ ์ฝํ ์ธ ๋ฅผ ์ฝ์ ํฉ๋๋ค.
์์ ์์ ํ์ด์ง(Home.aspx)
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h2>ํํ์ด์ง ์ฝํ
์ธ ์
๋๋ค</h2>
</asp:Content>
โ ์์ฝ
MasterPage๋ ์ ์ฒด ํ์ด์ง์ ๊ณตํต ์ ์ฉ๋๋ ๋ ์ด์์์ ์ ์ํ๊ณ , ContentPlaceHoder๋ ์์ ํ์ด์ง ์ฝํ ์ธ ๊ฐ ์ฝ์ ๋๋ ์๋ฆฌ๋ก
๋ง์คํฐํ์ด์ง ํ ๋ฒ ์ค์ ํ๋ฉด ๊ฐ ํ์ด์ง๋ ์ฝํ ์ธ ๋ง ์์ฑํ๋ฉด๋๋ค.!โจ
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ASP.NET] PC/๋ชจ๋ฐ์ผ ์ ์ ๊ตฌ๋ถ - Request.UserAgent & IndexOf (0) | 2025.03.28 |
---|---|
[C#] ASP.NET 4.0 WebForms Global.asax ํ์ผ (0) | 2025.02.28 |
[C#] ASP.NET์ TCP ์ฐ๊ฒฐ ์ค์ (0) | 2025.02.17 |
[C#] var ํค์๋์ ์๋ฌต์ ํ์ ์ถ๋ก (0) | 2025.02.16 |
[C#] ASP.NET 4.0 ๋ ๊ฑฐ์ ์ฝ๋ web.config ํ์ผ ๋ถ์ (0) | 2024.12.30 |