iT邦幫忙

0

MVC使用ViewBag把包含引號的字串帶入javascript發生錯誤

  • 分享至 

  • xImage

最近在做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 ;」感覺滿奇怪的。

請問我跟怎麼做?之前遇過這問題好像是用甚麼語法把字串做轉換,忘了當時是怎麼改的,請高手幫幫我,現在就遇到這個問題沒辦法往下做,謝謝。

天黑 iT邦研究生 5 級 ‧ 2023-05-29 16:08:37 檢舉
下面已經有解答了,你帶入的是json字串,前端套件要用的應該是json吧?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
最佳解答

events: [ @ViewBag.eventsdata]

這裡的 @ViewBag,似乎是指定 JS 變數名稱,而不是一個字串的樣子。
如果 JS 變數名稱,應該就不能有 ' 或 " 了。

我要發表回答

立即登入回答