using AspNetCoreMVC.Models; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; namespace AspNetCoreMVC.Controllers { //[Route("Home")] [Route("[controller]")] // 컨트롤러 이름 자동으로 따라감 public class HomeController : Controller { private IEnumerable _baseLoggers; public HomeController(IEnumerable loggers) { _baseLoggers = loggers; } //private readonly ILogger _logger; //public HomeController(ILogger logger) //{ // _logger = logger; //} [Route("Index")] [Route("/")] public IActionResult Index() { //string url = Url.Action("Privacy", "Home"); //string url = Url.RouteUrl("test", new { test = 123 }); //return Redirect(url); //return RedirectToAction("Privacy"); //return View(); //FileLogger logger = new FileLogger(new FileLogSetting("log.txt")); //logger.Log("Log Test"); foreach (var logger in _baseLoggers) { logger.Log("DI Log Test"); } return Ok(); } [Route("DITest")] public IActionResult ActionDITest([FromServices] IBaseLogger logger) { logger.Log("Log Test"); return Ok(); } public IActionResult Test() { TestViewModel viewModel = new TestViewModel() { Names = new List() { "One", "Two", "Three" } }; return View(viewModel); } [HttpPost("Post")] public IActionResult PostOnly() { return Ok(1); } [Route("Test")] // 컨트롤러 하위 상대경로 [Route("/TestSecret")] // 절대경로 public IEnumerable ApiTest() { List names = new List() { "Four", "Five", "Six", "Seven" }; return names; } public IActionResult Sample() { SampleViewModel viewModel = new SampleViewModel() { Id = 1005, Count = 2 }; return View(viewModel); } public IActionResult BuyItem(int id, int count) { return View(); } public IActionResult Test1(int id, [FromHeader] string value) { return null; } public IActionResult Test2(TestModel testModel) { if (!ModelState.IsValid) return RedirectToAction("Error"); return null; } //1) names[0]=Faker&names[1]=Deft //2) [0]=Faker&[1]=Deft //3) names=Faker&names=Deft public IActionResult Test3(List names) { return null; } public IActionResult Privacy() { //int a = 1; //int b = 3 / (a - 1); ViewData["Message"] = "Data from privacy"; return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }