日期:2014-05-17  浏览次数:20483 次

C#后台生成JSON串,前台获取的问题
最近遇到这样一个问题:


public string modifyJsonData ;
if(判断){
modifyJsonData = BasicDeploymentFacade.获取JSON串的方法();
}

aspx页面上js里头


var data="<%=modifyJsonData %>"

这样会出问题,因为如果cs里面modifyJsonData 本身就是空,没问题,但是一旦modifyJsonData 是一个经过序列化的串(标准json串,都是带双引号的),这样 在js里面等于给data赋这个"{"name":"haha"}",自然报错了。
我又想直接

var data=<%=modifyJsonData %>

但是这样的话,如果modifyJsonData 是空的话,在js中等于 var data= ;语法又错了。

不得已,只能在后台的那个获取json串的方法里头加了个replace,把双引号都变成了单引号。

大家有什么好方法没有?

------解决方案--------------------
var data=<%=modifyJsonData==null?"null":modifyJsonData %>;


(其实呢,今天瞭眼一看差26分10000,到10000就能升级了,然后收手,N久没回过技术帖了,生分了,诶老了妈的)
------解决方案--------------------
就这么也算是问题啊.
var data=<%= string.IsNullOrEmpty(modifyJsonData)?"\"\"":modifyJsonData %>