不是漏洞, 正常现象.
因为服务端控件dropdownlist在render之前,会把它的一些属性(每个item的text,value)存在viewstate中(就是一个编码之后的hidden),否则我们怎么能象window form中的控件一样取到它的selected item的text,value呢? 因为在http请求中,对于select我们只能得到select item value..net 用这个value结合viewstate中的内容,让我们能取得text.
但对于你的客户短加的新项目,因为你不能改变viewstate中的内容,所以在server端不能象正常的item一样取的text or value.不过,你用request.form的形式是可以取的新项的id.

解决方案 »

  1.   

    当然,如果你能在client端加新项的时候,同时能响应的改变那个viewstate的hidden的内容,server端应该也能正常的读取新增的item.
    不过这比较难,应该是可行的.
      

  2.   

    照理说这个工作应当微软做, viewstate想修改实在太难, 因为都是加密的.
    搞不懂微软的其他控件例如: text就无此问题, 为什要留组合框去折磨我们这些不幸的人...