Edit.cshtml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. @model Admin.ViewModels.Forum.Posts.List.EditViewModel
  2. @{
  3. ViewData["Title"] = "게시글 수정";
  4. }
  5. <div class="container">
  6. <h3 class="mb-3">@ViewData["Title"]</h3>
  7. <hr />
  8. <partial name="_StatusMessage" />
  9. <form method="post" action="/Forum/Post/Edit/@Model.ID" accept-charset="utf-8" autocomplete="off" enctype="multipart/form-data">
  10. <input type="hidden" name="ID" value="@Model.ID" />
  11. <input type="hidden" name="BoardID" value="@Model.BoardID" />
  12. <input type="hidden" name="ReturnUrl" value="@(Model.ReturnUrl ?? "/Forum/Post/List")" />
  13. <!-- 제목 -->
  14. <div class="row mb-2">
  15. <label class="col-sm-2 col-form-label"><span class="text-danger">*</span> 제목</label>
  16. <div class="col-sm-10">
  17. <input type="text" name="Subject" class="form-control" value="@Model.Subject" maxlength="255" required />
  18. </div>
  19. </div>
  20. <!-- 내용 -->
  21. <div class="row mb-2">
  22. <label class="col-sm-2 col-form-label">내용</label>
  23. <div class="col-sm-10">
  24. <textarea name="Content" class="form-control" rows="10" maxlength="8000">@Model.Content</textarea>
  25. </div>
  26. </div>
  27. <!-- 대표 이미지 -->
  28. <div class="row mb-2">
  29. <label class="col-sm-2 col-form-label">대표 이미지</label>
  30. <div class="col-sm-10">
  31. <div id="thumbPrev" @(string.IsNullOrWhiteSpace(Model.Thumbnail) ? "hidden" : "")>
  32. <img class="img-fluid img-thumbnail" alt="대표 이미지 미리보기" src="@(Model.Thumbnail ?? "")" />
  33. </div>
  34. <input type="file" id="ThumbnailFile" name="ThumbnailFile" class="form-control" accept=".jpg,.jpeg,.png,.gif,.webp,.bmp" />
  35. <span class="form-text text-muted">
  36. 지원 확장자: <code>.jpg</code>, <code>.jpeg</code>, <code>.png</code>, <code>.gif</code>, <code>.webp</code>, <code>.bmp</code><br />
  37. 권장 크기: 가로 300px 이상 (최대 10MB)
  38. </span>
  39. </div>
  40. </div>
  41. <!-- 상태 -->
  42. <div class="row mb-2">
  43. <label class="col-sm-2 col-form-label">상태</label>
  44. <div class="col-sm-10 align-content-center">
  45. <div class="form-check form-check-inline">
  46. <input type="checkbox" class="form-check-input" name="IsNotice" value="true" @(Model.IsNotice ? "checked" : "") />
  47. <input type="hidden" name="IsNotice" value="false" />
  48. <label class="form-check-label">공지</label>
  49. </div>
  50. <div class="form-check form-check-inline">
  51. <input type="checkbox" class="form-check-input" name="IsSecret" value="true" @(Model.IsSecret ? "checked" : "") />
  52. <input type="hidden" name="IsSecret" value="false" />
  53. <label class="form-check-label">비밀</label>
  54. </div>
  55. <div class="form-check form-check-inline">
  56. <input type="checkbox" class="form-check-input" name="IsAnonymous" value="true" @(Model.IsAnonymous ? "checked" : "") />
  57. <input type="hidden" name="IsAnonymous" value="false" />
  58. <label class="form-check-label">익명</label>
  59. </div>
  60. </div>
  61. </div>
  62. <hr />
  63. <div class="d-grid gap-2 text-center d-md-block">
  64. <button type="submit" class="btn btn-sm btn-success">저장</button>
  65. <a href="@(Model.ReturnUrl ?? "/Forum/Post/List")" class="btn btn-sm btn-secondary">취소</a>
  66. <button type="submit"
  67. class="btn btn-sm btn-danger"
  68. formaction="/Forum/Post/Delete/@Model.ID"
  69. formmethod="post"
  70. formnovalidate
  71. onclick="return confirm('삭제 하시겠습니까? 삭제된 게시물은 복구가 불가능합니다.');">
  72. 삭제
  73. </button>
  74. </div>
  75. <br />
  76. </form>
  77. </div>
  78. @section Scripts {
  79. <script>
  80. setupImagePreview("ThumbnailFile", "thumbPrev");
  81. </script>
  82. }