我在后台定义了一个实体,这个实体里面有一个属性是枚举类型的,
现在需要前台将这个对象通过ajax传递到后台
这个枚举类型要怎么传啊
或者说,这个js的对象要怎么定义啊
后台不序列化成字符串?
不是js序列化成字符串,然后传到后台,解析成对象么,我是这样操作的,但是现在转化的时候提示string不能转化成我定义的枚举类型,注:这个枚举类型是我在后台定义的
可以用Newtonsoft.Json.Net20.dll将你的C#对象序列化为对应的json字符串回传给客户端,客户端eval后就可以自动还原为你对应的json对象了,js不用定义对应的对象,这个和C#反序列化为类是不一样的。至于你的enum对象会被序列化为数字,键名称为你定义的变量名称
DEMO
<script>
var s='{"abc":1,"age":22}'
var o=eval('('+s+')')
alert(o.abc)
alert(o.age)
</script>
你先用 Newtonsoft 之类的转换工具先将你指定的那个类的对象转成 string,
你自己跟踪一下,
在后台, 最终的数据格式是什么样的
在前端, 用firefox浏览器, 并安装firebug插件, 或者用chrome 浏览器
按f12
在js中, 你加一个debugger来断点调试, 看数据到前端是什么样的。
其实 $.ajax 中, 如果你指定了数据格式为json, 是不需要再用 eval 转换的, 直接就是 json 对象了