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轉化為字符串格式)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM