ASP.Net MVC 레이아웃 페이지,템 플 릿 페이지 사용 방법 상세 소개
@RenderBody
창설 기반Layout.cshtml 레이아웃 페이지 의 보 기 는 보기 의 내용 이 레이아웃 페이지 와 합 쳐 지고 새로 만 든 보기 의 내용 은Layout.cshtml 레이아웃 페이지 의@RenderBody()방법 은 탭 사이 에 나타 납 니 다.
@RenderPage
이름 에서 알 수 있 듯 이 이 방법 은 페이지 를 보 여 주 는 것 이다.예 를 들 어 웹 페이지 에 고정된 머리 는 공 유 된 보기 파일 에 따로 놓 은 다음 에 레이아웃 페이지 에서 이 방법 으로 호출 할 수 있 습 니 다.용법 은 다음 과 같 습 니 다.
@RenderPage(“~/Views/Shared/_Header.cshtml”)
매개 변수
@RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you")
페이지 에서 인자 가 져 오기:
//RenderPage()가 전달 하 는 인자 가 져 오기
@PageData["param"]
@RenderSection
레이아웃 페이지 와 섹 션(Section)의 개념 이 있 습 니 다.즉,특정한 보기 템 플 릿 에서 하나의 절 을 정의 하면 단독으로 보 여줄 수 있 습 니 다.
절 부족 으로 인 한 이상 을 방지 하기 위해 RenderSection()에 두 번 째 인 자 를 제공 할 수 있 습 니 다.
@RenderSection("head", false)
혹시
@if (IsSectionDefined("head"))
{
@RenderSection("head", false)
}
else
{
SubMenu Section is not defined!
}
코드 는 다음 과 같 습 니 다:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content(" rel="external nofollow" ~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
@RenderSection("head", required: true)@*View js/css *@
</head>
<body>
@RenderPage("~/Views/Shared/_Header.cshtml")
@RenderBody()
</body>
</html>
2.보 기 를 만 들 고 모판 페이지 를 사용 합 니 다.코드 는 다음 과 같 습 니 다:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
@section Head{
<script type="text/javascript">
$(function () {
alert("hello jquery");
});
</script>
}
<p> C# </p><br />
@DateTime.Now.Date.ToShortDateString()
<p> C# </p>
@{
List<string> list = new List<string> { "Mvc3", "Razor" };
list.Add(".Net4");
}
<ul>
@foreach(string s in list)
{
if (string.IsNullOrEmpty(s))
{
<li> </li>
}
else
{
<li>@s</li>
}
}
</ul>
3.페이지 의 소스 코드 생 성
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<link href="/Content/Site.css" rel="external nofollow" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
alert("hello jquery");
});
</script>
</head>
<body>
<h2>Index</h2>
<p> C# </p><br />
2013/3/11
<p> C# </p>
<ul>
<li>Mvc3</li>
<li>Razor</li>
<li>.Net4</li>
</ul>
</body>
</html>
[email protected]Partial 은 매번 자신의 TextWriter 인 스 턴 스 를 만 들 고 내용 을 메모리 에 캐 시 합 니 다.마지막 으로 모든 writer 가 출력 한 내용 을 MvcString 대상 에 보 냅 니 다.
@{Html.RenderPartial("Details")을 더 많이 사용 합 니 다.}@Html.Partial 이 아 닙 니 다.
Html.RenderPartial()과@Html.Partial 의 차이
Html.RenderPartial 은 현재 HttpContext 로 직접 출력 합 니 다(직접 출력 이기 때문에 성능 이 좋 습 니 다).
Html.Partial 은 보기 내용 을 문자열 로 직접 만 들 고 되 돌려 줍 니 다(전의 가 있 는 과정 에 해당 합 니 다).
RenderPage()와 RenderPartial()의 차이
RenderPage()호출 된 페이지 는 과거 데 이 터 를 전달 하 는 데 만 사용 할 수 있 습 니 다.
RenderPartial()은 viewdata,model 등 데 이 터 를 사용 할 수 있 습 니 다.
예:@{Html.RenderPartial("Basic Chart",model);}
이 리 셋 을 사용 하면 일부 보기에 서 강 한 형식 을 사용 한 다음 주 보기에 서 두 번 째 매개 변 수 를 사용 하여 model 에 전달 할 수 있 습 니 다.
@{Html.RenderPartial("BasicChart",ViewData["myData"]);}
Html.RenderPartial 과 Html.RenderAction 의 차이
Html.RenderPartial 은 중복 사용 에 적합 한 UserControl 이 며,Model 을 통 해 내용 을 보 여주 거나 광고 에 대한 UserControl 도 사용 하기에 적합 합 니 다.
Html.RenderAction 은 먼저 Controller 의 Action 방법 을 호출 합 니 다.만약 에 이 UserControl 이 데이터 라 이브 러 리 를 통 해 자 료 를 얻어 서 보 여 줘 야 한다 면(Action 을 통 해 데이터 라 이브 러 리 를 읽 는 것)이 방식 을 사용 하기에 적합 할 것 입 니 다.
보충:
1.Render 가 있 는 방법 반환 값 은 void 이 고 방법 내부 에서 출력 합 니 다.가지 고 있 지 않 은 반환 값 형식 은 MvcHtmlString 이기 때문에 이렇게 만 사용 할 수 있 습 니 다:
@Html.Partial 대응@{Html.RenderPartial(...);}
@Html.Action 대응@{Html.RenderAction(...);}
2.Html.Partial 은 사용자 컨트롤 이름 을 매개 변수 로 직접 제공 할 수 있 으 며,Html.Action 은 대응 하 는 Action 이 필요 하 며,Action 내부 에서 Partail Result(즉 retun PartialView()로 돌아 가 야 합 니 다.
3.간단 하고 논리 적 이지 않 은 사용자 컨트롤 에 대해 Html.Partial 을 사용 하 는 것 을 추천 합 니 다.Model 을 설정 해 야 하 는 사용자 컨트롤 에 대해 서 는 Html.Action 을 사용 하 는 것 을 추천 합 니 다.물론 Model 데이터 가 있 는 것 도 Html.Partial 방법 을 사용 할 수 있 고 방법 을 볼 수 있 습 니 다.
4.Html.Action 을 사용 하면 좋 은 점 이 있 습 니 다.즉,서로 다른 장면 에 따라 서로 다른 사용자 컨트롤 을 선택 할 수 있 습 니 다.
예 를 들 면:
@Html.Action("UserInfoControl")
대응 하 는 User InfoControl 이라는 Action 에서 사용자 가 로그 인하 지 않 았 을 때 retun PartialView("LogOn User Control")를 사용 할 수 있 습 니 다.로그 인 후 retun PartialView("User InfoControl")를 사용 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
방법: 데이터베이스에서 선택한 날짜를 Calendar 컨트롤에 표시합니다.Calendar 컨트롤은 데이터 연결을 직접 지원하지 않습니다. 즉, 달력을 데이터 원본에 전체적으로 연결하는 것이 아닙니다.대신 코드를 작성하여 필요한 데이터를 가져오면 Day Render 이벤트에서 현재 표시된 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.