안녕하세요.
ViewBag 개체에 Encoding 속성을 통해서
Get과 Post 양쪽에 모두 전송해야 합니다.
제 강의 소스를 참고하셔서 HttpPost 메서드 부분의 Create 액션 메서드에
GetEncoding() 함수 호출 부분이 누락되었는지 확인해보세요.
(2012년도에 만든 소스라서, 저도 이 강의 소스를 열어본지 11년 되는 것 같습니다...)
public ActionResult Create()
{
ViewData["Title"] = "게시판 글쓰기";
GetEncoding();
return View();
}
private void GetEncoding()
{
SelectList encodingOptions = new SelectList(new string[] {"Text", "HTML", "Mixed"});
ViewBag.Encoding = encodingOptions;
}
//
// POST: /DotNetNote/Create
[HttpPost]
[ValidateInput(false)] // Page 지시문에 validateRequest="false"와 동일 기능
public ActionResult Create(DotNetNoteArticle dotnetnotearticle)
{
GetEncoding(); // <- 이 코드가 누락된 것 같습니다.
// ...
}
On 2023-06-05 오후 12:07:00, '박성현' wrote:
안녕하세요. asp.net mvc4 게시판 강의 들으면서 게시판 만들고 있는데 6강에서
Create부분에서 @Html.DropDownList("Encoding", ViewBag.Encoding as SelectList)을 수정하고
입력이후에 System.InvalidOperationException: ''Encoding' 키를 가진 ViewData 항목이 'System.String' 형식이지만 'IEnumerable<SelectListItem>' 형식이어야 합니다.' 에 대한 오류가 나와서 찾아봤는데도 해결점이 안보여서 파일 첨부해서 올립니다.