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/
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
부트스트랩 ASP.NET에서 설정하는 법1) _Layout.cshtml 內 link로 bootstrap 참조 2) Nuget 패키지에서 BootStrap 다운로드 3) 하단 부트스트랩 예제 사이트 참고해서 프로젝트 개발 참고 :...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.