Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: ASP.NET MVC české znaky v javacsript alert

Aktivity
Avatar
Michal Pflegshörl:28.1.2021 12:11

Když pomocí ViewData předám z Controlleru do View text s českými znaky a odřádkováním a ve View ho chci zobrazit jako alert tak se české znaky a odřádkování špatně dekódují.

Zkusil jsem: Controller

public IActionResult Index()
{
        ViewData["ZpravaUzivateli"] = "ěščřž" + Environment.NewLine + "ýáíéůú";

        return View();
}

View

@if (ViewData["ZpravaUzivateli"] != null && ViewData["ZpravaUzivateli"].ToString() != "")
{
        <script language='javascript'>
                window.onload = function () {
                    alert('@ViewData["ZpravaUzivateli"]');
                };
        </script>
}

Chci docílit: Aby zpráva nevypadala takhle

&#x11B;&#x161;&#x10D;&#x159;&#x17E;&#xD;&#xA;&#xFD;&#xE1;&#xED;&#xE9;&#x16F;&#xFA;
 
Odpovědět
28.1.2021 12:11
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :28.1.2021 15:03

V _Layout.cshtml mas meta charset nastavene na utf-8 ?...Inde na webe ti ide cestina? Chyba je len v tomto pripade? Kodovani .cs controlleru v VS mas nastavene dobre?

 
Nahoru Odpovědět
28.1.2021 15:03
Avatar
Odpovídá na Tadeáš Burda
Michal Pflegshörl:28.1.2021 15:13

charset je utf-8, veškeré texty na webu jsou bez problémů.
Kde najdu nastavení kodovani .cs controlleru?

 
Nahoru Odpovědět
28.1.2021 15:13
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :28.1.2021 16:50

/stackoverflow

Otvoris si triedu vo VS > hore das File > Save as > v okne co ti otvori rozkliknes Vase > vyberes Save with encoding > vyberes kodovani alebo sa pozres jak je to kodovane

Nemusi to byt nutne tim, alebo to ide aj jednoduchsi len si nepamatam jak, but uz sa mi to raz stalo ze sem skopiroval text a vlozil ho do triedy a prepisalo mi to kodovani... Potom mi vsetko slo jak mnelo iba ten text mi to vypisovalo zle. Iba hadam nemusi to byt tim, moze to byt nieco ine.

 
Nahoru Odpovědět
28.1.2021 16:50
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :28.1.2021 16:53

Defaultne to mozes este takto ale stejnak ak sa ti to ulozilo inak budes to muset ulozit znova z inim kodovanim... odkaz

 
Nahoru Odpovědět
28.1.2021 16:53
Avatar
Michal Pflegshörl:29.1.2021 8:13

Kódování při uložení je UTF-8 s podpisem, je to OK?
Zajímavé je, že když ten zmršený text vložím do příspěvku a zobrazím si náhled, tak se zobrazí tak jak by měl.

 
Nahoru Odpovědět
29.1.2021 8:13
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :29.1.2021 9:45

No UTF-8 by malo byt fajn...Tak ja nevim sorry, strilal sem odboku ine mna nenapada... Snad nekdo ini sa ti ozve...
Takze ked pouzijes @ViewData["Zpra­vaUzivateli"] inde na stranke nez v JS.alert tak to zobrazuje korektne?? Tak to asi pak nebude problem v texte ale vtem alerte...Skusal si cez ten alert zobrazit aj ini text? Skus tam napevno dat niaky text co to spravi ci to zobrazi aj znamenka

 
Nahoru Odpovědět
29.1.2021 9:45
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :29.1.2021 9:50

Viš co skus este napevno nastavit temu scriptu kodovani

<script charset="UTF-8">
                window.onload = function () {
                    alert('@ViewData["ZpravaUzivateli"]');
                };
        </script>
 
Nahoru Odpovědět
29.1.2021 9:50
Avatar
Odpovídá na Tadeáš Burda
Michal Pflegshörl:29.1.2021 11:45

Pokud @ViewData["Zpra­vaUzivateli"] vložím čistě do stránky tak se zobrazí v pořádku.
Pokud do Alertu vložím napevno české znaky, tak se taky zobrazí v pořádku.
Vypadá to, že problém je pouze při dekódování @ViewData["Zpra­vaUzivateli"] v alertu.
Vypadá to tak, že se to dekóduje podle toho jak by to vypadalo v Url

 
Nahoru Odpovědět
29.1.2021 11:45
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :29.1.2021 16:52

A v JS debugery vypada jak ten string predtim než ho zobrazy alert? Uz je tak kodovany alebo ho tak zakoduje az ten alert?...Nevim nevim fakt ked inak to normalne ide, este sem sa znecim takym nestretel :-?

PS: skus pouzit "ěščřž\nýáíéůú" co to spravy
PS2: namiesto tvojho if pouzi racej string.IsNullO­rEmpty(ViewDa­ta["ZpravaUzi­vateli"])

 
Nahoru Odpovědět
29.1.2021 16:52
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :29.1.2021 16:58

Skus doteho alertu dat racej @ViewData["Zpra­vaUzivateli"]­.ToString(), ale to uz varim z vody, fakt netusim... Mozes poslat zdrojak, alebo kod abych to mohel reprodukovat?

 
Nahoru Odpovědět
29.1.2021 16:58
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Michal Pflegshörl
Tadeáš Burda :29.1.2021 17:51
<input id="message" type="hidden" value="@ViewData["ZpravaUzivateli"]" />
@section Scripts{
    <script>
        $(function () {
            if ($("#message").val() != "")
                alert($("#message").val());
        });
    </script>
}

Takto to funguje ak ti to staci...Problem bude v ViewData...Nechce sa mi to hledat tak ak ta to zaujima skus si kuknut dokumentaciu ktemu...Podla mna tam nic neni(vtem ViewData) dokat sa to nerendruje, ale len hadam...Snad pomohlo

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
29.1.2021 17:51
Avatar
Tadeáš Burda
Brigádník
Avatar
 
Nahoru Odpovědět
29.1.2021 18:08
Avatar
Odpovídá na Tadeáš Burda
Michal Pflegshörl:1.2.2021 8:20

Super! Takhle to funguje.
Opět ti velice moc děkuji za pomoc.

 
Nahoru Odpovědět
1.2.2021 8:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.