ASP.NET Core 2.0 레이아웃 페이지(번역)

6323 단어 ASP.NETCore배치
본 고 는 ASP.NET Core 2.0 레이아웃 페이지 를 소개 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.
문제.
어떻게 ASP.NET Core 2.0 프로젝트 에서 보 이 는 요소,코드 블록 과 명령 을 공유 합 니까?
답안
빈 항목 을 새로 만 듭 니 다.먼저 Greeting Service 서비스 와 UserView Model 모델 을 추가 합 니 다.

public interface IGreetingService

{

  string Greet(string firstname, string surname);

}

 

public class GreetingService : IGreetingService

{

  public string Greet(string firstname, string surname)

  {

    return $"Hello {firstname} {surname}";

  }

} 
그 다음 에 Startup 에 MVC 서비스 와 Greeting Service 서 비 스 를 추가 하고 MVC 미들웨어 를 설정 합 니 다.

public void ConfigureServices(IServiceCollection services)

{

  services.AddScoped<IGreetingService, GreetingService>();

  services.AddMvc();

}

 

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

{

  if (env.IsDevelopment())

  {

    app.UseDeveloperExceptionPage();

  }

 

  app.UseMvc(routes =>

  {

    routes.MapRoute(

      name: "default",

      template: "{controller=Home}/{action=Index}/{id?}");

  });

} 

컨트롤 러 HomeController 를 추가 하고 Index 방법 을 수정 하 며 ViewResult 로 돌아 갑 니 다.

public class HomeController : Controller

{

  public IActionResult Index()

  {

    var model = new UserViewModel

    {

      Firstname = "Tahir",

      Surname = "Naushad"

    };

    return View(model);

  }

} 

레이아웃 페이지 추가(Layout.cshtml):

<!DOCTYPE html>

<html>

<head>

  <title>@ViewBag.Title</title>

</head>

<body>

  <div>

    <h1>I'm in Layout page</h1>

    @RenderBody()

 

    @RenderSection("footer", required: false)

    @if (IsSectionDefined("links"))

    {

      @RenderSection("links", required: false)

    }

    else

    {

      <em>No social media links supplied</em>

    }

  </div>

</body>

</html> 

보 기 를 추가 하고 이름 약속 을 지 키 십시오(Views/Home/Index.cshtml):

@model UserViewModel

@{

  ViewBag.Title = "ASP.NET Core";

}

<h2>I'm in View page</h2>

<p>@Greeter.Greet(@Model.Firstname, @Model.Surname)</p>

@section footer{

  <h3>I'm in footer section</h3>

}

 

@*

  @section links{

    <a href="http://www.cnblogs.com/sanshi/" rel="external nofollow" target="_blank">Blog</a>

  }

*@ 

가 져 오기 페이지 추가(ViewImports.cshtml):

@using LayoutPage.Models

@inject IGreetingService Greeter 
시작 페이지 추가(ViewStart.cshtml):

@{

  Layout = "_Layout";

} 
완 성 된 디 렉 터 리 구 조 는 다음 과 같다.

실행,이 때 페이지 표시:

토론 하 다.
ASP.NET Core 는 보기 마다 보 이 는 요소 와 공공 코드 를 다시 사용 하 는 방법 을 제공 합 니 다.
1.레이아웃 페이지
2.시작 페이지
3.페이지 가 져 오기
레이아웃 페이지(Layout.cshtml)
레이아웃 페이지 는 서로 다른 페이지 사이 에 공공 적 인 보 이 는 요 소 를 공유 하여 전체 응용 프로그램 에 일치 하 는 외관 과 사용 체험 을 제공 합 니 다.
레이아웃 페이지 는 Views/shared 디 렉 터 리 에 추가 되 며 이름 은Layout.cshtml(약정 규칙).한 프로그램 에 여러 개의 레이아웃 페이지 를 배치 할 수 있 습 니 다.
보 기 는 레이아웃 을 사용 할 레이아웃 속성 을 설정 합 니 다.ASP.NET Core 는 먼저 보기 와 관련 된 폴 더 에서 레이아웃 을 찾 습 니 다.찾 지 못 하면 Shared 디 렉 터 리 에서 찾 습 니 다.레이아웃 페이지 는@RenderBody 방법 으로 보기 의 내용 을 렌 더 링 합 니 다.
하면,만약,만약...Layout.cshtml 을 삭제 하면 이상 한 정보 에서 경 로 를 찾 는 순 서 를 볼 수 있 습 니 다.

 레이아웃 페이지 도 보기 의 어느 단락 으로 바 꿀 지@RenderSection 을 사용 할 수 있 습 니 다.이 단락 들 은 반드시 필요 하거나 선택 할 수 있다.보 기 는@section 을 사용 하여 이 단락 의 내용 을 정의 합 니 다.레이아웃 페이지 는 IsSection Defined 를 사용 하여 보기에 서 특정한 단락 이 정의 되 었 는 지 판단 하고 판단 결과 에 따라 해당 하 는 처 리 를 할 수 있 습 니 다.

@if (IsSectionDefined("links"))

{

  @RenderSection("links", required: false)

}

else

{

  <em>No social media links supplied</em>

} 
페이지 가 져 오기(ViewImports.cshtml)
앞에서 논 의 했 듯 이 보 기 는 명령 을 사용 하여 많은 일 을 할 수 있 습 니 다.예 를 들 어 네 임 스페이스(@using)를 가 져 오고 의존 항목(@inject)과 성명 모델 형식(@model)을 주입 할 수 있 습 니 다.MVC 는 하나 이상 의 보기 에 공공 을 설명 하 는 가 져 오기 페이지 도 제공 합 니 다.
가 져 오기 페이지 는 일반적으로 뷰 디 렉 터 리 에 추가 되 고 이름 이 입 니 다.ViewImports.cshtml。다른 디 렉 터 리(예 를 들 어 보기 디 렉 터 리)에 도 추가 할 수 있 습 니 다.이 경우 이 디 렉 터 리 아래 보기(하위 디 렉 터 리 포함)에 적 용 됩 니 다.
가 져 오기 페이지 가 여러 개 있 으 면 보기 에 가장 가 까 운 명령(예 를 들 어@model,@inject)을 사용 합 니 다.다른 경 우 는 모든 명령 이 합 쳐 지 는 것 입 니 다(예 를 들 어@using,@addTagHelper).
시작 페이지(ViewStart.cshtml)
MVC 는 모든 보기 전에 코드 를 실행 하 는 메커니즘 을 제공 합 니 다.이것 이 시작 페이지 입 니 다.시작 페이지 는 레이아웃 페이지 와 부분 보 기 를 제외 하고 모든 보기 전에 실 행 됩 니 다.
시작 페이지 는 보통 Views 디 렉 터 리 에 추가 되 고 이름 이 입 니 다.ViewStart.cshtml。시작 페이지 가 여러 개 있 으 면 루트 디 렉 터 리 에서 하위 디 렉 터 리 까지 레이 어 링 순서대로 실 행 됩 니 다.
시작 페이지 는 디 렉 터 리 아래 의 모든 보기 에 레이아웃 페이지 를 설정 하 는 데 자주 사 용 됩 니 다.
소스 코드 다운로드
원문:https://tahirnaushad.com/2017/08/23/asp-net-core-2-0-mvc-layout-pages/
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기