첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.

728x90
반응형
728x170

TestProject.zip
다운로드

▶ Controllers/TestController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
using Microsoft.Docs.Samples;

namespace TestProject.Controllers
{
    /// <summary>
    /// 테스트 컨트롤러
    /// </summary>
    public class TestController : Controller
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Field
        ////////////////////////////////////////////////////////////////////////////////////////// Private

        #region Field

        /// <summary>
        /// 링크 발생기
        /// </summary>
        private readonly LinkGenerator linkGenerator;

        #endregion

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

        #region 생성자 - TestController(linkGenerator)

        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="linkGenerator">링크 발생기</param>
        public TestController(LinkGenerator linkGenerator)
        {
            this.linkGenerator = linkGenerator;
        }

        #endregion

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

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

        /// <summary>
        /// 인덱스 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Index()
        {
            string url = this.linkGenerator.GetPathByAction(HttpContext, null, null, new { id = 17, });

            return Content(url);
        }

        #endregion
        #region 구독 페이지 처리하기 - Subscribe(id)

        /// <summary>
        /// 구독 페이지 처리하기
        /// </summary>
        /// <param name="id">ID</param>
        /// <returns>액션 결과</returns>
        public IActionResult Subscribe(int id) => ControllerContext.MyDisplayRouteInfo(id);

        #endregion
        #region 작성 페이지 처리하기 - Write()

        /// <summary>
        /// 작성 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Write()
        {
            string url = this.linkGenerator.GetPathByAction("Subscribe", "Home", new { id = 17 });

            return Content(url);
        }

        #endregion
    }
}

 

728x90

 

▶ Controllers/HomeController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.Docs.Samples;
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 구독 페이지 처리하기 - Subscribe(id)

        /// <summary>
        /// 구독 페이지 처리하기
        /// </summary>
        /// <param name="id">ID</param>
        /// <returns>액션 결과</returns>
        public IActionResult Subscribe(int id)
        {
            return ControllerContext.MyDisplayRouteInfo(id);
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요