html字符编码问题__.net core razor页面如何将后台对象序列成json对象放到js中_字符串含有双引号处理办法
方法一:后台直接添加htmlstring字符串,给到前台:
A-将含有html编码的字符串转为Html字符串传给Js对象存储:
Razor页面:
string test = HttpUtility.HtmlEncode("<a'b?c>");
JS属性接收-使用Html.Raw将html字符串反编码回来:
window["test"] = { "a" :"@Html.Raw(test)" , };
重点1:假如test="<a'b?c>",这样直接给JS用不就好了? 关键问题是含有特殊字符的字符串放进js中默认是会编码的,因此无论你的后台字符串是编码后的还是编码前的,在JS中最好都要使用Html.Raw反编码回来。
重点2:假如test=HttpUtility.HtmlEncode("<a"b?c>"); 含有双引号怎么办? 我们这样传递给js属性时会因为中间多了一个引号而报错的,那么此时我们是需要对双引号进行单独转义替换的,将双引号“"”改为:“\"”。
重点3:js属性接收字符变量的时候,需要使用双引号包裹。
如下:
string test = "<a"b?c>".Replace("\"","\"\""); string test = HttpUtility.HtmlEncode(test);
B-将对象序列化成字符串传递给Js对象存储:
1-将对象序列化成字符串:
var jsonStr=JsonHelper.ConvertJsonToStr(jObject);
2-前台显示:
window["test"] = { "a" :@jsonStr, };
*感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神 支持是博主强大的写作动力。欢迎转载!
*博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
*我的博客: http://www.cnblogs.com/lxhbky/
*博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
*我的博客: http://www.cnblogs.com/lxhbky/