첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

TestProject.zip
다운로드

▶ Controllers/HomeController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Diagnostics;

using TestProject.Models;

namespace TestProject.Controllers
{
    /// <summary>
    /// 홈 컨트롤러
    /// </summary>
    public class HomeController : Controller
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Field
        ////////////////////////////////////////////////////////////////////////////////////////// Private

        #region Field

        /// <summary>
        /// 로그 작업자
        /// </summary>
        private readonly ILogger<HomeController> logger;

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - HomeController(logger)

        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="logger">로그 작업자</param>
        public HomeController(ILogger<HomeController> logger)
        {
            this.logger = logger;
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 인덱스 페이지 처리하기 - Index()

        /// <summary>
        /// 인덱스 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Index()
        {
            return View();
        }

        #endregion
        #region 개인 보호 정책 페이지 처리하기 - Privacy()

        /// <summary>
        /// 개인 보호 정책 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Privacy()
        {
            return View();
        }

        #endregion
        #region 에러 페이지 처리하기 - Error()

        /// <summary>
        /// 에러 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestID = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }

        #endregion
        #region HELLO 페이지 처리하기 - Hello()

        /// <summary>
        /// HELLO 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Hello()
        {
            return View();
        }

        #endregion
    }
}

 

728x90

 

▶ Views/Home/Hello.cshtml

@{
    ViewData["Title"] = "Hello Page";
}
<h1>Hello World!</h1>

 

300x250

 

▶ Views/Shared/_Layout.cshtml

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>@ViewData["Title"] - TestProject</title>
        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
        <link rel="stylesheet" href="~/css/site.css" />
    </head>
    <body>
        <header>
            <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
                <div class="container">
                    <a
                        class="navbar-brand"
                        asp-area=""
                        asp-controller="Home"
                        asp-action="Index">
                        TestProject
                    </a>
                    <button
                        class="navbar-toggler"
                        type="button"
                        data-toggle="collapse"
                        data-target=".navbar-collapse"
                        aria-controls="navbarSupportedContent"
                        aria-expanded="false"
                        aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon" />
                    </button>
                    <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                        <ul class="navbar-nav flex-grow-1">
                            <li class="nav-item">
                                <a class="nav-link text-dark"
                                    asp-area=""
                                    asp-controller="Home"
                                    asp-action="Index">
                                    Home
                                </a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-dark"
                                    asp-area=""
                                    asp-controller="Home"
                                    asp-action="Privacy">
                                    Privacy
                                </a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-dark"
                                    asp-area=""
                                    asp-controller="Home"
                                    asp-action="Hello">
                                    Hello
                                </a>
                            </li>
                        </ul>
                    </div>
                </div>
            </nav>
        </header>
        <div class="container">
            <main role="main" class="pb-3">
                @RenderBody()
            </main>
        </div>
        <footer class="border-top footer text-muted">
            <div class="container">
                &copy; 2020 - TestProject - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
            </div>
        </footer>
        <script src="~/lib/jquery/dist/jquery.min.js"></script>
        <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
        <script src="~/js/site.js" asp-append-version="true"></script>
        @RenderSection("Scripts", required : false)
    </body>
</html>

 

▶ Startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace TestProject
{
    /// <summary>
    /// 시작
    /// </summary>
    public class Startup
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Property
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 구성 - Configuration

        /// <summary>
        /// 구성
        /// </summary>
        public IConfiguration Configuration { get; }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - Startup(configuration)

        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="configuration">구성</param>
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 서비스 컬렉션 구성하기 - ConfigureServices(serviceCollection)

        /// <summary>
        /// 서비스 컬렉션 구성하기
        /// </summary>
        /// <param name="serviceCollection">서비스 컬렉션</param>
        public void ConfigureServices(IServiceCollection serviceCollection)
        {
            serviceCollection.AddControllersWithViews();
        }

        #endregion
        #region 구성하기 - Configure(builder, environment)

        /// <summary>
        /// 구성하기
        /// </summary>
        /// <param name="builder">애플리케이션 빌더</param>
        /// <param name="environment">웹 호스트 환경</param>
        public void Configure(IApplicationBuilder builder, IWebHostEnvironment environment)
        {
            if(environment.IsDevelopment())
            {
                builder.UseDeveloperExceptionPage();
            }
            else
            {
                builder.UseExceptionHandler("/Home/Error");

                builder.UseHsts();
            }

            builder.UseHttpsRedirection();

            builder.UseStaticFiles();

            builder.UseRouting();

            builder.UseAuthorization();

            builder.UseEndpoints
            (
                endpoints =>
                {
                    endpoints.MapControllerRoute
                    (
                        name    : "default",
                        pattern : "{controller=Home}/{action=Index}/{id?}"
                    );
                }
            );
        }

        #endregion
    }
}

 

▶ Program.cs

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

namespace TestProject
{
    /// <summary>
    /// 프로그램
    /// </summary>
    public class Program
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Public

        #region 프로그램 시작하기 - Main(argumentArray)

        /// <summary>
        /// 프로그램 시작하기
        /// </summary>
        /// <param name="argumentArray">인자 배열</param>
        public static void Main(string[] argumentArray)
        {
            CreateHostBuilder(argumentArray).Build().Run();
        }

        #endregion
        #region 호스트 빌더 생성하기 - CreateHostBuilder(argumentArray)

        /// <summary>
        /// 호스트 빌더 생성하기
        /// </summary>
        /// <param name="argumentArray">인자 배열</param>
        /// <returns>호스트 빌더</returns>
        public static IHostBuilder CreateHostBuilder(string[] argumentArray) =>
            Host.CreateDefaultBuilder(argumentArray).ConfigureWebHostDefaults
            (
                webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                }
            );

        #endregion
    }
}
728x90
반응형
그리드형

'.NetCore > ASP.NET MVC' 카테고리의 다른 글

[.NETCORE/ASP.NET MVC] DeveloperExceptionPageExtensions 클래스 : UseDeveloperExceptionPage 확장 메소드를 사용해 개발자 예외 페이지 사용 설정하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] WelcomePageExtensions 클래스 : UseWelcomePage 확장 메소드를 사용해 환영 페이지 표시하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] StatusCodePagesExtensions 클래스 : UseStatusCodePages 확장 메소드를 사용해 상태 코드 페이지 미들웨어 추가하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] DefaultFilesExtensions 클래스 : UseDefaultFiles 확장 메소드를 사용해 기본 문서 설정하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] DirectoryBrowserExtensions 클래스 : UseDirectoryBrowser 확장 메소드를 사용해 디렉토리 목록 보기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] FileServerExtensions 클래스 : UseFileServer 확장 메소드를 사용해 정적 파일 사용하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] StaticFileExtensions 클래스 : UseStaticFiles 확장 메소드를 사용해 정적 파일 폴더 추가하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] StaticFileExtensions 클래스 : UseStaticFiles 확장 메소드를 사용해 정적 파일 사용하기  (0) 2020.10.04
[.NETCORE/ASP.NET MVC] Hello World ASP.NET CORE MVC 애플리케이션 만들기  (0) 2020.10.03
[.NETCORE/ASP.NET MVC] EndpointRouteBuilderExtensions 클래스 : MapGet 확장 메소드를 사용해 HTTP GET 요청 처리하기  (0) 2020.10.03
[.NETCORE/ASP.NET MVC] ASP.NET Core 웹앱 만들기  (0) 2020.02.04
Posted by 사용자 icodebroker

댓글을 달아 주세요