목차
This is the default footer
This is the /Views/Home/List.cshtml View
Java java지도 시간 [ASP.NET MVC 매버릭스 로드]12

[ASP.NET MVC 매버릭스 로드]12

Dec 30, 2016 pm 04:22 PM
asp.net mvc

[ASP.NET
MVC Mavericks Road] 12 - 섹션, 부분 뷰 및 하위 액션

간단히 말해서 뷰의 콘텐츠는 정적 부분과 동적 부분으로 나눌 수 있습니다. 정적 콘텐츠는 일반적으로 html 요소인 반면, 동적 콘텐츠는 애플리케이션이 실행될 때 동적으로 생성되는 콘텐츠를 나타냅니다. View에 동적 콘텐츠를 추가하는 방법은 다음과 같이 요약할 수 있습니다.

인라인 코드, if 및 foreach 문과 같은 작은 코드 조각.
뷰 모델, ViewBag 등과 같은 단일 또는 다중 HTML 요소를 생성하는 데 사용되는 HTML 도우미 메서드
섹션에서는 생성된 콘텐츠의 일부를 지정된 위치에 삽입합니다.
부분 보기는 별도의 보기 파일에 존재하며 여러 보기에서 하위 콘텐츠로 공유할 수 있습니다.
하위 작업은 비즈니스 로직이 포함된 UI 구성 요소와 동일합니다. 하위 작업이 사용되면 컨트롤러의 작업을 호출하여 뷰를 반환하고 결과를 출력 스트림에 삽입합니다.

이 분류는 절대적인 것은 아닙니다. 처음 두 개는 매우 간단하며 이전 기사에서 사용되었습니다. 이 기사에서는 후자의 세 가지 방법의 적용을 주로 소개합니다.

목차


섹션

Razor 뷰 엔진은 필요한 경우 재사용을 위해 뷰의 콘텐츠 일부를 분리하여 코드를 줄입니다. 중복성. 섹션을 사용하는 방법을 보여드리겠습니다.

MVC 애플리케이션을 만들고 기본 템플릿을 선택합니다. HomeController를 추가하고, 생성된 Index 메서드를 다음과 같이 편집합니다.

public ActionResult Index() {
    string[] names = { "Apple", "Orange", "Pear" };
    return View(names);
}
로그인 후 복사

Index 메서드를 마우스 오른쪽 버튼으로 클릭하고, 뷰를 추가하고, 다음과 같이 뷰를 편집합니다.

@model string[] 
 
@{ 
    ViewBag.Title = "Index"; 
} 
 
@section Header { 
    <div class="view"> 
        @foreach (string str in new [] {"Home", "List", "Edit"}) { 
            @Html.ActionLink(str, str, null, new { style = "margin: 5px" })   
        } 
    </div> 
}

<div class="view"> 
    This is a list of fruit names: 
    @foreach (string name in Model) { 
        <span><b>@name</b></span> 
    } 
</div>@section Footer { 
    <div class="view"> 
        This is the footer 
    </div> 
}
로그인 후 복사

섹션을 추가합니다. @section 태그 이름을 통해 섹션을 정의합니다. 여기에는 머리글과 바닥글이라는 두 개의 섹션이 생성됩니다. 섹션은 읽기 쉽도록 보기 파일의 시작 부분이나 끝 부분에 배치하는 것이 일반적입니다. 아래에서는 /Views/Shared/_Layout.cshtml 파일에서 이를 사용합니다.

다음과 같이 /Views/Shared/_Layout.cshtml 파일을 편집합니다.

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <style type="text/css"> 
        div.layout { background-color: lightgray;} 
        div.view { border: thin solid black; margin: 10px 0;} 
    </style> 
    <title>@ViewBag.Title</title> 
</head> 
<body>
    @RenderSection("Header") 
 
    <div class="layout"> 
        This is part of the layout 
    </div> 
 
    @RenderBody() 
 
    <div class="layout"> 
        This is part of the layout 
    </div>

    @RenderSection("Footer")
<div class="layout"> 
        This is part of the layout 
    </div> 
</body> 
</html>
로그인 후 복사

@RenderSection 메서드를 통해 섹션의 콘텐츠를 호출하고 매개변수는 부분. 프로그램을 실행하면 다음과 같은 결과를 볼 수 있습니다.

[ASP.NET MVC 매버릭스 로드]12

섹션은 현재 뷰나 해당 레이아웃에서만 호출할 수 있습니다. @RenderSection 메소드는 매개변수에 지정된 섹션을 찾지 못하면 예외를 발생시킵니다. 섹션이 존재하는지 확실하지 않은 경우 다음과 같이 두 번째 매개변수의 값을 false로 지정해야 합니다.

... 
@RenderSection("scripts", false) 
...
로그인 후 복사

다음과 같이 IsSectionDefined 메서드를 사용할 수도 있습니다.

... 
@if (IsSectionDefined("Footer")) { 
    @RenderSection("Footer") 
} else { 
    <h4 id="This-nbsp-is-nbsp-the-nbsp-default-nbsp-footer">This is the default footer</h4>    
} 
...
로그인 후 복사


부분 보기

부분 보기는 부분 Razor이며 Html 태그는 다른 위치에서 재사용할 수 있도록 별도의 보기 파일에 배치됩니다. 다음으로 부분뷰 사용법을 소개하겠습니다.

먼저 부분 뷰를 만들어 보겠습니다. /Views/Shared 디렉터리에 MyPartial이라는 새 보기 파일을 생성하고 다음과 같이 "부분 보기로 생성"을 선택합니다.

[ASP.NET MVC 매버릭스 로드]12

추가된 부분 보기 파일은 빈 파일입니다. , 이 파일에 다음 코드를 추가합니다.

<div>
    This is the message from the partial view.
    @Html.ActionLink("This is a link to the Index action", "Index")
</div>
로그인 후 복사

이 MyPartial.cshtml 보기는 홈 페이지로 돌아가는 링크를 생성합니다. 물론 여기의 @Html.ActionLink 메서드는 View 콘텐츠를 동적으로 로드하는 (Html ​​도우미) 방법이기도 합니다.

그런 다음 HomeController에 다음과 같이 List 작업 메서드를 추가합니다.

public ActionResult List()
{
    return View();
}
로그인 후 복사

이를 위해 List.cshtml 보기를 계속 추가하고 렌더링하려는 @Html.Partial 메서드를 호출합니다. 다음과 같은 부분 보기:

@{
    ViewBag.Title = "List";
    Layout = null;
}
<h3 id="This-nbsp-is-nbsp-the-nbsp-Views-Home-List-cshtml-nbsp-View">This is the /Views/Home/List.cshtml View</h3>
@Html.Partial("MyPartial")
로그인 후 복사

보기 엔진은 /Views/Home 및 /Views/Shared 폴더에서 MyPartial 보기를 지정된 순서로 검색합니다.

프로그램을 실행하고 /Home/List로 이동하면 다음과 같은 효과를 볼 수 있습니다.

[ASP.NET MVC 매버릭스 로드]12

부분 보기와 부분 보기 사용에는 차이가 없습니다. 일반 보기 및 강력한 입력을 사용할 수 있습니다. 예를 들어 MyPartial.cshtml에서 @model을 통해 모델 유형을 지정합니다.

@model IEnumerable<string>

<div>
    This is the message from the partial view.
    @Html.ActionLink("This is a link to the Index action", "Index")
    
    <ul>
        @foreach (string str in Model)
        {
            <li>@str</li>
        }
    </ul>
</div>
로그인 후 복사

MyPartial.cshtml 보기를 호출하는 기본 보기 List.cshtml을 수정합니다.

@{
    ViewBag.Title = "List";
    Layout = null;
}
<h3 id="This-nbsp-is-nbsp-the-nbsp-Views-Home-List-cshtml-nbsp-View">This is the /Views/Home/List.cshtml View</h3>
@Html.Partial("MyPartial", new[] { "Apple", "Orange", "Pear" })
로그인 후 복사

위와 차이점은 여기서는 @Html.Partial에 대한 두 번째 매개 변수를 지정하고 MyPartial.cshtml의 모델 개체에 배열을 전달한다는 것입니다. 실행 효과는 다음과 같습니다.

[ASP.NET MVC 매버릭스 로드]12

Child Action

Child action 和 Patial view 类似,也是在应用程序的不同地方可以重复利用相同的子内容。不同的是,它是通过调用 controller 中的 action 方法来呈现子内容的,并且一般包含了业务的处理。任何 action 都可以作为子 action 。接下来介绍如何使用它。

在 HomeController 中添加一个 action,如下:

[ChildActionOnly]
public ActionResult Time()
{
    return PartialView(DateTime.Now);
}
로그인 후 복사

这个 action 通过调用 PartialView 方法来返回一个 partial view。ChildActionOnly 特性保证了该 action 只能作为子action被调用(不是必须的)。

接着我们继续为这个action添加一个相应的 Time.cshtml 视图,代码如下:

@model DateTime

<p>The time is: @Model.ToShortTimeString()</p>
로그인 후 복사


在 List.cshtml 视图中添加如下代码来调用 Time action 方法 :
...
@Html.Action("Time")
로그인 후 복사

运行结果如下:

[ASP.NET MVC 매버릭스 로드]12

我们通过 @Html.Action 方法来调用了 Time action 方法来呈现子内容。在这个方法中我们只传了一个action名称参数,MVC将根据当前View所在Controller去查找这个action。如果是调用其它 controller 中的 action 方法,则需要在第二个参数中指定 controller 的名称,如下:

... 
@Html.Action("Time", "MyController")
로그인 후 복사

该方法也可以给 action 方法的参数传值,如对于下面带有参数的 action:

... 
[ChildActionOnly] 
public ActionResult Time(DateTime time) { 
    return PartialView(time); 
}
로그인 후 복사
我们可以这样使用 @Html.Action 方法:
... 
@Html.Action("Time", new { time = DateTime.Now })
로그인 후 복사

 以上就是[ASP.NET MVC 小牛之路]12 的内容,更多相关内容请关注PHP中文网(www.php.cn)!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP MVC 아키텍처: 미래를 위한 웹 애플리케이션 구축 PHP MVC 아키텍처: 미래를 위한 웹 애플리케이션 구축 Mar 03, 2024 am 09:01 AM

소개 오늘날 빠르게 발전하는 디지털 세계에서는 강력하고 유연하며 유지 관리가 가능한 웹 애플리케이션을 구축하는 것이 중요합니다. PHPmvc 아키텍처는 이러한 목표를 달성하기 위한 이상적인 솔루션을 제공합니다. MVC(Model-View-Controller)는 애플리케이션의 다양한 측면을 독립적인 구성 요소로 분리하는 널리 사용되는 디자인 패턴입니다. MVC 아키텍처의 기초 MVC 아키텍처의 핵심 원칙은 관심사 분리입니다. 모델: 애플리케이션의 데이터와 비즈니스 로직을 캡슐화합니다. 보기: 데이터 표시 및 사용자 상호 작용 처리를 담당합니다. 컨트롤러: 모델과 뷰 간의 상호 작용을 조정하고 사용자 요청과 비즈니스 로직을 관리합니다. PHPMVC 아키텍처 phpMVC 아키텍처는 전통적인 MVC 패턴을 따르지만 언어별 기능도 도입합니다. 다음은 PHPMVC입니다.

PHP MVC 아키텍처에 대한 고급 가이드: 고급 기능 잠금 해제 PHP MVC 아키텍처에 대한 고급 가이드: 고급 기능 잠금 해제 Mar 03, 2024 am 09:23 AM

MVC 아키텍처(Model-View-Controller)는 코드를 구성하고 WEB 애플리케이션 개발을 단순화하기 위한 명확한 구조를 제공하기 때문에 PHP 개발에서 가장 널리 사용되는 패턴 중 하나입니다. 기본 MVC 원칙은 대부분의 웹 애플리케이션에 충분하지만 복잡한 데이터를 처리하거나 고급 기능을 구현해야 하는 애플리케이션에는 몇 가지 제한 사항이 있습니다. 모델 계층 분리 모델 계층을 분리하는 것은 고급 MVC 아키텍처에서 일반적인 기술입니다. 여기에는 모델 클래스를 더 작은 하위 클래스로 나누는 작업이 포함되며, 각 하위 클래스는 특정 기능에 중점을 둡니다. 예를 들어 전자 상거래 애플리케이션의 경우 기본 모델 클래스를 주문 모델, 제품 모델 및 고객 모델로 나눌 수 있습니다. 이러한 분리는 코드 유지 관리성과 재사용성을 향상시키는 데 도움이 됩니다. 의존성 주입 사용

PHP를 사용하여 MVC 패턴을 구현하는 방법 PHP를 사용하여 MVC 패턴을 구현하는 방법 Jun 07, 2023 pm 03:40 PM

MVC(Model-View-Controller) 패턴은 개발자가 코드를 더 잘 구성하고 관리하는 데 도움이 될 수 있는 일반적으로 사용되는 소프트웨어 디자인 패턴입니다. MVC 패턴은 애플리케이션을 모델, 뷰, 컨트롤러의 세 부분으로 나누고 각 부분에는 고유한 역할과 책임이 있습니다. 이번 글에서는 PHP를 사용하여 MVC 패턴을 구현하는 방법에 대해 설명합니다. 모델 모델은 애플리케이션의 데이터 및 데이터 처리를 나타냅니다. 대개,

SpringMVC 프레임워크의 성공 알아보기: 이것이 인기 있는 이유 SpringMVC 프레임워크의 성공 알아보기: 이것이 인기 있는 이유 Jan 24, 2024 am 08:39 AM

SpringMVC 프레임워크 복호화: 왜 그렇게 인기가 있으며 특정 코드 예제가 필요합니까? 소개: 오늘날의 소프트웨어 개발 분야에서 SpringMVC 프레임워크는 개발자들 사이에서 매우 인기 있는 선택이 되었습니다. MVC 아키텍처 패턴을 기반으로 하는 웹 프레임워크로 유연하고 가볍고 효율적인 개발 방법을 제공합니다. 이 기사에서는 SpringMVC 프레임워크의 매력을 자세히 살펴보고 특정 코드 예제를 통해 그 강력함을 보여줍니다. 1. SpringMVC 프레임워크의 장점 유연한 구성 방식 Spr

MVC 아키텍처를 사용하여 PHP에서 프로젝트를 디자인하는 방법 MVC 아키텍처를 사용하여 PHP에서 프로젝트를 디자인하는 방법 Jun 27, 2023 pm 12:18 PM

웹 개발에서 MVC(Model-View-Controller)는 애플리케이션의 데이터, 사용자 인터페이스 및 제어 논리를 처리하고 관리하기 위해 일반적으로 사용되는 아키텍처 패턴입니다. 널리 사용되는 웹 개발 언어인 PHP는 MVC 아키텍처를 사용하여 웹 애플리케이션을 설계하고 구축할 수도 있습니다. 이 기사에서는 MVC 아키텍처를 사용하여 PHP에서 프로젝트를 설계하는 방법을 소개하고 그 장점과 주의 사항에 대해 설명합니다. MVCMVC란 웹 애플리케이션에서 일반적으로 사용되는 소프트웨어 아키텍처 패턴입니다. MV

PHP8 프레임워크로 MVC 개발: 초보자가 알아야 할 중요한 개념과 기술 PHP8 프레임워크로 MVC 개발: 초보자가 알아야 할 중요한 개념과 기술 Sep 11, 2023 am 09:43 AM

PHP8 프레임워크를 사용하여 MVC 개발: 초보자가 알아야 할 중요한 개념 및 기술 소개: 인터넷의 급속한 발전으로 인해 웹 개발은 오늘날 소프트웨어 개발 산업에서 중요한 역할을 하고 있습니다. PHP는 웹 개발에 널리 사용되며 개발자가 애플리케이션을 보다 효율적으로 구축하는 데 도움이 되는 성숙한 프레임워크가 많이 있습니다. 그 중 MVC(Model-View-Controller) 아키텍처는 가장 일반적이고 널리 사용되는 패턴 중 하나입니다. 이 기사에서는 초보자가 PHP8 프레임워크를 사용하여 MVC 애플리케이션을 개발하는 방법을 소개합니다.

PHP8 프레임워크를 사용하여 MVC 개발: 단계별 가이드 PHP8 프레임워크를 사용하여 MVC 개발: 단계별 가이드 Sep 11, 2023 am 10:05 AM

PHP8 프레임워크를 사용하여 MVC 개발: 단계별 가이드 소개: MVC(Model-View-Controller)는 애플리케이션의 논리, 데이터 및 사용자 인터페이스를 분리하는 데 사용되는 일반적으로 사용되는 소프트웨어 아키텍처 패턴입니다. 코드를 더 잘 관리하고 유지 관리하기 위해 애플리케이션을 세 가지 개별 구성 요소로 분리하는 구조를 제공합니다. 이 기사에서는 PHP8 프레임워크를 사용하여 MVC 패턴을 준수하는 애플리케이션을 개발하는 방법을 살펴보겠습니다. 1단계: MVC 패턴 이해 MVC 애플리케이션 개발을 시작하기 전에 나는

PHP MVC 아키텍처의 비밀 공개: 웹사이트를 멋지게 만드세요 PHP MVC 아키텍처의 비밀 공개: 웹사이트를 멋지게 만드세요 Mar 03, 2024 am 09:25 AM

MVC(모델-뷰-컨트롤러) 아키텍처는 유지 관리 및 확장이 가능한 웹 애플리케이션을 구축하기 위한 강력한 디자인 패턴입니다. PHPMVC 아키텍처는 애플리케이션 로직을 세 가지 개별 구성 요소로 분해합니다. 모델: 애플리케이션의 데이터 및 비즈니스 로직을 나타냅니다. 보기: 사용자에게 데이터를 표시하는 역할을 담당합니다. 컨트롤러: 모델과 뷰 사이의 브리지 역할을 하며 사용자 요청을 처리하고 다른 구성 요소를 조정합니다. MVC 아키텍처의 장점: 코드 분리: MVC는 애플리케이션 로직을 프레젠테이션 계층에서 분리하여 유지 관리성과 확장성을 향상시킵니다. 재사용성: 뷰 및 모델 구성 요소를 다양한 애플리케이션에서 재사용할 수 있어 코드 중복이 줄어듭니다. 성능 최적화: MVC 아키텍처는 뷰 및 모델 결과를 캐싱하여 웹 사이트 속도를 높입니다. 테스트 친화적: 분리

See all articles