最近在做ASP.NET MVC網站使用C#程式,現在遇到一個問題,我把ViewBag帶入javascript,結果因為ViewBag裡面有引號,所以就造成javascript有錯誤跑不出來,我是在做一個月曆的功能,結果發生這個問題,程式如下:
ViewBag.eventsdata = "{ title: \'Movie\', start: \'2023-05-01\' }, { title: \'google\', start: \'2023-05-07\', end: \'2023-05-10\' , url: \'http://google.com/\'}";
<script>
document.addEventListener('DOMContentLoaded', function () {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialDate: '2023-05-12',
editable: true,
selectable: true,
businessHours: true,
dayMaxEvents: true, // allow "more" link when too many events
events: [ @ViewBag.eventsdata
]
});
calendar.render();
});
</script>
而這邊ViewBag只有帶入script裡面才出問題,因為我直接把ViewBag內容顯示在網頁上一切都正常,結果這一段script就不能跑。
檢視原始碼ViewBag裡面的內容有「'」的全部變成「& # 3 9 ;」,不知道為什麼?
在網頁上ViewBag內容中有「'」會正常顯示,但是原始碼也是「& # 3 9 ;」感覺滿奇怪的。
請問我跟怎麼做?之前遇過這問題好像是用甚麼語法把字串做轉換,忘了當時是怎麼改的,請高手幫幫我,現在就遇到這個問題沒辦法往下做,謝謝。
events: [ @ViewBag.eventsdata]
這裡的 @ViewBag,似乎是指定 JS 變數名稱,而不是一個字串的樣子。
如果 JS 變數名稱,應該就不能有 ' 或 " 了。