관리 메뉴

웹개발자의 기지개

[ASP.NET Core] TempData 형태로 저장된 문자열이 다른 Razor 페이지상의 javascript 문자열로 불러올때 인코딩 되는 문제 해결하기 본문

ASP.NET/ASP.NET Core

[ASP.NET Core] TempData 형태로 저장된 문자열이 다른 Razor 페이지상의 javascript 문자열로 불러올때 인코딩 되는 문제 해결하기

http://portfolio.wonpaper.net 2023. 1. 9. 04:25

 

[ Controller.cs ] 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        [HttpPost]
        public IActionResult Input(Talk model)
        {
            if (ModelState.IsValid)
            {
                //string ipc = HttpContext.Connection.RemoteIpAddress.ToString();
                Talk t = _repository.InputTalk(model);
 
                TempData["alert"= "정상적으로 등록하였습니다. ";
                return RedirectToAction("Index");
            }
            return View();
        }
 
        [HttpGet]
        public IActionResult Delete(long id)
        {
            _repository.DelTalk(id);
            _commentRepository.DelTalkCommentFK(id);
 
            TempData["alert"= "해당 Talk 내용을 삭제하였습니다. ";
            return RedirectToAction("Index");
        }
cs

 

9라인과 21라인처럼 TempData 형태로 저장시키고 다른 Razor 페이지 Index.cshtml 페이지에서

다음과 같이 javascript alert 문자열 형태로 찍으려고 했으나, 인코딩 처리되어 읽을 수가 없었다.

 

이때, @Html.Raw() 함수 처리하면 된다.

 

[ Index.cshtml ] - Razor 페이지

 

1
2
3
4
5
6
@if (TempData["alert"!= null)
{
    <script>
        alert('@Html.Raw(TempData["alert"].ToString())');
    </script>
}
cs

 

 

참고 : https://stackoverflow.com/questions/6291198/wrong-text-encoding-in-string-sent-to-javascript

 

Comments