zoukankan      html  css  js  c++  java
  • html文本转化为html格式显示的问题

    在使用.net MVC,时,razor渲染可以帮助我们使用@value来将value的值加载到html文本中,但是,它是严格的字符串显示,即,如果value是“hello world”,他会将Hello world 替换到@value的位置。

    这个严格替换一定要注意。

    它带来的问题是,当我们在javascript中使用它的值时,var str=@value; 在解析或会变成var str=hello world,很明显,和普通的变量不同,他不会自动添加双引号,这样语法上是有问题的,执行时,javascript会报错。

    进一步,我们对它手动添加双引号var str="@value";当替换后,理论上是var str="@value"; 这样没问题,但是如果这个一个标签字符串则行不通,因为,会报错:字符串常量没有终止符,

    为什么呢?因为手动加的双引号是不能跨行的,而带html标签的字符串,标签中是有自动换行这种格式控制的,所以这样做并不安全,不健壮。

    显示html字符串,我们通常可以使用

    1.document.write(value);

    2.$("#table_div").html(value);

    但是@value作为参数传入,他不是一个字符串,所以会报语法错误,怎么正确输出一个html标签呢,下面是研究出来的解决方法

    使用隐藏标签<input id="hidden_table"  type="hidden" value="@value" />

    var str=$("hidden_table").val();

    $("#table_div").html(str);

    这样就可以将字符串转化为html啦。

    (使用document.write和$("#element").html只要传入html标签的文本就能正确解析,但是注意如果是@razor需要将@razor转化为字符串格式)

  • 相关阅读:
    Unix下5种I/O模型
    UDP/TCP拾遗
    智能指针
    YUV的数据格式
    OpenCV中RGB和HSV转换的问题
    RGB、YUV和HSV颜色空间模型
    const成员函数和mutable关键字
    设计模式--观察者模式Observer(对象行为型)
    linux备忘簿
    ctags使用详解(转载)
  • 原文地址:https://www.cnblogs.com/lbzhu/p/8022485.html
Copyright © 2011-2022 走看看