WebHU - Programozási kérdések és válaszok

A JavaScript összeomlik a JSON-karakterláncban lévő HTML-entitások miatt

A NewtonSoft.Json.JsonConvert.SerializeObject()-t használom egy ASP.NET szótár objektum JSON-karakterláncsá tételére. Ezután ezt a karakterláncot átadom az MVC nézetemnek a ViewBag segítségével.

Amikor az MVC Razor by Razor szintaxisomban megpróbálom betölteni a JSON-karakterláncot a ViewBag-ból és egy JavaScript-változóba, a JavaScriptem szintaktikai hiba miatt összeomlik. Amikor megnézem a forráskódot, ezt tapasztalom:

var hf = {"Test0":65,"Test1":23,"Test2":43,"Test3":6,"Test4":31,"Test5":78,"Test6":1,"Test7":53,"Test8":74,"Test9":54};

Ez a logikám a ViewBag tartalmának a nézetbe való betöltéséhez:

@section RenderChart
{
<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    function drawChart() {
        var hf = @ViewBag.ChartJsonData;

Valamilyen oknál fogva a JSON-karakterláncom HTML-kódolású. Megpróbáltam átadni a ViewBagba, miután végigfutottam a Server.HtmlDecode()-en, de ez nem segített. Tudja valaki, hogyan tudom dekódolni ezt a karakterláncot, vagy átadni a JavaScript-nek az MVC View-ban anélkül, hogy HTML entitásokká konvertálnám?


  • El tudja küldeni a nézet megfelelő részét, ahol a JSON-t kiadja a ViewBagból? 02.02.2013
  • @nemesv Igen, elnézést, hogy kihagytam! Frissítettem az eredeti bejegyzést a megfelelő kóddal. 02.02.2013

Válaszok:


1

A Razor automatikusan kódol minden karakterláncot, ha az a @ karakterlánccal lett kiadva.

Ha nem akarja a HTML kódolást, akkor a karakterláncot egy Html.Nyers:

<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    function drawChart() {
        var hf = @Html.Raw(ViewBag.ChartJsonData)
    }
</script>
02.02.2013
  • Természetesen! Erről megfeledkeztem. Túl rég volt, hogy webprogramozást végeztem. Nagyon szépen köszönöm! 02.02.2013
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..