vs2003 asp.net多form根本无法输出多个wml的card

来源:互联网 发布:linux与ubuntu的区别 编辑:程序博客网 时间:2024/05/22 09:46

       我们知道,wml中可以定义多个card,其意义就是针对无线网络的窄带宽,便于用户在不同card间切换时,显示不同的内容,但并不需要连接网络.

      而vs2003中,可以建立多个form,但根本就没有实际意义,因为你会发现,在客户端收到的代码中,依然只有当前活动的一个card定义,并且你会看到,生成的wml中,card是没有id这个属性的.因为它只能生成一个card,因此微软干脆把card的id这个属性也给抛弃了,害得我研究半天,怎么来设定card  的id,气愤!

      而你在服务器定义的其它form跑哪里去了呢,它还是在服务器上,如果你当前的card中有跳转到其它card的代码,用户让它执行后,其实又让手机去连接了服务器,来获得另外一个card,因此微软的所谓支持多form,是把我们骗了,与wml制定多card的初衷完全不合.

    既然这样如何解决呢,当然就只有不用asp.net的form跳转功能了,用手工输出wml的方式,向客户端发送多card的代码.这中间就要用到自定义控件,以字符串输出的方式来输出wml,并且要欺骗asp.net,让它输出多card.注意最终生成的结果要完全符合wml的标准才行.

    感觉微软的移动web自适应功能,反而给开发者带来不便,并且自带的移动控件的兼容性能不能通过移动联通的要求,都很成问题.

   听说vs2005是可以实现多card的输出,没用过,不知道情况如何.