From dc11a29d4d7844889605986625ae24a4982e0d36 Mon Sep 17 00:00:00 2001 From: syneffort Date: Wed, 30 Aug 2023 09:39:54 +0900 Subject: [PATCH] web api --- .../Controllers/HomeController.cs | 36 +++++++++++++++++++ BlazorApp/AspNetCoreMVC/Models/Models.cs | 10 ++++++ BlazorApp/AspNetCoreMVC/Program.cs | 26 +++++++------- .../AspNetCoreMVC/Views/Home/Sample.cshtml | 29 +++++++++++++++ 4 files changed, 89 insertions(+), 12 deletions(-) create mode 100644 BlazorApp/AspNetCoreMVC/Views/Home/Sample.cshtml diff --git a/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs b/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs index d7e7f17..d85c0bd 100644 --- a/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs +++ b/BlazorApp/AspNetCoreMVC/Controllers/HomeController.cs @@ -4,6 +4,8 @@ using System.Diagnostics; namespace AspNetCoreMVC.Controllers { + //[Route("Home")] + [Route("[controller]")] // 컨트롤러 이름 자동으로 따라감 public class HomeController : Controller { private readonly ILogger _logger; @@ -38,6 +40,40 @@ namespace AspNetCoreMVC.Controllers 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; diff --git a/BlazorApp/AspNetCoreMVC/Models/Models.cs b/BlazorApp/AspNetCoreMVC/Models/Models.cs index f3dd01a..e1c921d 100644 --- a/BlazorApp/AspNetCoreMVC/Models/Models.cs +++ b/BlazorApp/AspNetCoreMVC/Models/Models.cs @@ -15,4 +15,14 @@ namespace AspNetCoreMVC.Models { public List Names { get; set; } } + + public class SampleViewModel + { + [Required] + [Display(Name = "Product ID to purchase")] + public int Id { get; set; } + [Range(1, 10, ErrorMessage = "Value should be in 1 ~ 10!")] + [Display(Name = "Count")] + public int Count { get; set; } + } } diff --git a/BlazorApp/AspNetCoreMVC/Program.cs b/BlazorApp/AspNetCoreMVC/Program.cs index a09d86b..015307a 100644 --- a/BlazorApp/AspNetCoreMVC/Program.cs +++ b/BlazorApp/AspNetCoreMVC/Program.cs @@ -29,18 +29,20 @@ namespace AspNetCoreMVC app.UseAuthorization(); - app.MapControllerRoute( - name: "test", - pattern: "api/{controller=Home}/{action=Privacy}/{test:int?}"); - - app.MapControllerRoute( - name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); - - app.MapControllerRoute( - name: "wildcard", - pattern: "{*wildcard}", - defaults: new { controller = "Home", action = "Error" }); + //app.MapControllerRoute( + // name: "test", + // pattern: "api/{controller=Home}/{action=Privacy}/{test:int?}"); + + //app.MapControllerRoute( + // name: "default", + // pattern: "{controller=Home}/{action=Index}/{id?}"); + + //app.MapControllerRoute( + // name: "wildcard", + // pattern: "{*wildcard}", + // defaults: new { controller = "Home", action = "Error" }); + + app.MapControllers(); app.Run(); } diff --git a/BlazorApp/AspNetCoreMVC/Views/Home/Sample.cshtml b/BlazorApp/AspNetCoreMVC/Views/Home/Sample.cshtml new file mode 100644 index 0000000..4d4540a --- /dev/null +++ b/BlazorApp/AspNetCoreMVC/Views/Home/Sample.cshtml @@ -0,0 +1,29 @@ +@model SampleViewModel + +@{ + ViewData["Title"] = "Buy Item Sample"; +} + +@section Scripts { + @Html.Partial("_ValidationScriptsPartial"); +} + +

Buy Item Sample

+ +
+ +
+ + + +
+ +
+ + + +
+ + +
+