客户端代码
<select id="Select1" href="#{jsonLink}">
<option value=0>请选择……</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
</select>
<script>
_run( function() {
$('#dropItem').change( function() {
$.post( $(this).attr( 'href'), {'Id':$(this).val()}, function( data ) {
// 因为服务端通过echoJson直接返回json对象,所以这里可以直接通过Name属性获值
// 如果服务端echoText返回普通字符串,那么客户端需要使用 eval('('+data+')') 额外解析
alert( data.Name );
});
});
});
</script>
服务端代码
特别说明:如果自己拼接字符串,请
1)给 json属性名加上双引号,否则客户端Jquery无法正常解析。
2)其他字符串的引号必须使用双引号,如果使用单引号也不能正常解析。
举例: {Name:'张三'} 需要改成 {"Name":"张三"}
。
public void JsonTest() {
set( "jsonLink", to( JsonResult ) );
}
public void JsonResult() {
// 获取客户端提交的值
int id = ctx.PostInt( "Id" );
// 使用dic存放数据,可以避免手工拼接的错误
Dictionary<String, String> dic = new Dictionary<String, String>();
dic.Add( "Name", "你选择了" + id );
// 使用 echoJson 方法返回 json 字符串,客户端jquery可以直接使用
echoJson( dic );
}