@page "/admin/blog/create" @attribute [Authorize] @using TaxBaik.Application.DTOs @using TaxBaik.Application.Services @using TaxBaik.Domain.Interfaces @inject BlogService BlogService @inject ICategoryRepository CategoryRepository @inject NavigationManager Navigation @inject IJSRuntime JS 새 포스트 작성
Content

새 포스트 작성

새로운 블로그 포스트를 작성합니다.

@code { private List categories = []; private CreatePostModel model = new(); private string CategoryIdText { get => model.CategoryId?.ToString() ?? ""; set => model.CategoryId = int.TryParse(value, out var id) ? id : null; } protected override async Task OnInitializedAsync() { categories = (await CategoryRepository.GetAllAsync()).ToList(); } private async Task SavePost() { try { await BlogService.CreateAsync(new CreateBlogPostDto { Title = model.Title, Content = model.Content, CategoryId = model.CategoryId, Tags = model.Tags, SeoTitle = model.SeoTitle, SeoDescription = model.SeoDescription, IsPublished = model.IsPublished }); await JS.InvokeVoidAsync("alert", "포스트가 저장되었습니다."); Navigation.NavigateTo("/taxbaik/admin/blog"); } catch (ValidationException ex) { await JS.InvokeVoidAsync("alert", ex.Message); } } private class CreatePostModel { public string Title { get; set; } = ""; public string Content { get; set; } = ""; public int? CategoryId { get; set; } public string? Tags { get; set; } public string? SeoTitle { get; set; } public string? SeoDescription { get; set; } public bool IsPublished { get; set; } } }