Razor 将C#对象转换成Javascript对象, json还原被转码的字符 "·· HTML转义符
Posted bxzjzg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Razor 将C#对象转换成Javascript对象, json还原被转码的字符 "·· HTML转义符相关的知识,希望对你有一定的参考价值。
Razor 将C#对象转换成javascript对象
在Razor中使用Json字符串,特殊字符被自动转义(如:\\"->")
@{ var jsonStr = html.Raw(JsonUtil.ToJson(VieBag.data)); } <script> var data = JSON.parse(@jsonStr); </script>
ViewBag.Data = list;
<script type="text/javascript"> //将数据对象转换为 JSON 格式,是为了在网页中通过使用JS将数据作为文本进行处理 var data = @Html.Raw(Json.Encode(ViewBag.Data)); for (var i = 0; i < data.length; i++) { var model=data[i]; console.log("编号:"+model.id+" 姓名:"+model.name+" 性别:"+model.sex); } </script>
var c = document.createElement(\'div\'); c.innerHTML = \'@strData\'; var arrData = JSON.parse(c.innerText);
在JS中还原被转码的字符
<script type="text/javascript"> var a = \'h hello<world>!!!<script>alert(1)</script>\' alert(a); var c = document.createElement(\'div\'); c.innerHTML = a; a = c.innerText || c.textContent; c = null; alert(a); </script>
//去掉html标签 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,\'\');//删除所有HTML标签 } //普通字符转换成转意符 function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {\'<\':\'<\',\'>\':\'>\',\'&\':\'&\',\'"\':\'"\'}[c];}); } //转意符换成普通字符 function escape2Html(str) { var arrEntities={\'lt\':\'<\',\'gt\':\'>\',\'nbsp\':\' \',\'amp\':\'&\',\'quot\':\'"\'}; return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];}); } // 转成空格 function nbsp2Space(str) { var arrEntities = {\'nbsp\' : \' \'}; return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]}) } //回车转为br标签 function return2Br(str) { return str.replace(/\\r?\\n/g,"<br />"); } //去除开头结尾换行,并将连续3次以上换行转换成2次换行 function trimBr(str) { str=str.replace(/((\\s| )*\\r?\\n){3,}/g,"\\r\\n\\r\\n");//限制最多2次换行 str=str.replace(/^((\\s| )*\\r?\\n)+/g,\'\');//清除开头换行 str=str.replace(/((\\s| )*\\r?\\n)+$/g,\'\');//清除结尾换行 return str; } // 将多个连续空格合并成一个空格 function mergeSpace(str) { str=str.replace(/(\\s| )+/g,\' \'); return str; }
//去掉html标签
1
2
3
|
function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g, \'\' ); //删除所有HTML标签 } |
//普通字符转换成转意符
1
2
3
|
function html2Escape(sHtml) { return sHtml.replace(/[<>& "]/g,function(c){return {\'<\':\'<\',\'>\':\'>\',\'&\':\'&\',\'" \': \'"\' }[c];}); } |
//转意符换成普通字符
1
2
3
4
|
function escape2Html(str) { var arrEntities={ \'lt\' : \'<\' , \'gt\' : \'>\' , \'nbsp\' : \' \' , \'amp\' : \'&\' , \'quot\' : \'"\' 如何使用 Razor 视图引擎在 JavaScript 中正确混合 C# 代码。我希望根据 ViewBag 中的值包含或省略 Javascript
|