Pokud se budete pokoušet v Razor-View vytvořit JavaScript přiřazením textových hodnot, můžete si pěkně naběhnout:
var name = '@Model.Name';
Pokud totiž v Model.Name bude nějaká záludnější hodnota, dostanete například:
var name = 'Božíčku kolekcička'\' // original: Božíčku kolekcička'\
Taky možná najdete, že existuje HttpUtility.JavaScriptStringEncode() a zkusíte:
var name = '@HttpUtility.JavaScriptStringEncode(Model.Name)';
…což taky nedopadne nejlépe:
var name = 'Božíčku kolekcička\u0027\\' // original: Božíčku kolekcička'\
Až nakonec přijdete na to, že je potřeba:
var name = '@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.Name))';
…abyste dostali:
var name = 'Božíčku kolekcička\u0027\\' // original: Božíčku kolekcička'\
Případně použijete variantu, která si uvozovky (ne apostrofy) doplní sama.
var name = @Html.Raw(Json.Encode(Model.Name));
…z čehož plyne poučení, že se takto string do HTML raději nepokoušejte vůbec emitovat a raději přenášejte JSON objekty.