集合是只读的。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NotSupportedException: 集合是只读的。源错误: 
行 31:                     this.ddlist.SelectedValue =Convert.ToString(model.IndustryId);
行 32:                     
行 33:                     Request.Form[s1.ClientID]=model.province ;
行 34:                     Request.Form[s2.ClientID]=model.city;
行 35:                     Request.Form[s3.ClientID]=model.county;
 

解决方案 »

  1.   

    Request.Form就是客户端表单...只能在客户端更改表单值,服务端是只读的...去学学HTTP协议先,了解下基础吧...
      

  2.   


    Request.Form返回NameValueCollection类实例 它只有读的属性
      

  3.   


    Request.Form[...]这个东西是人家给你传递的,不是让你写的
    类似的用法:
    string strprovince  = Request.Form[s1.ClientID];
      

  4.   

    就是。连 http 协议都不懂还好意思说自己是搞Web开发的。就算这么做能行,也别指望客户端的文本框能起变化。想象下,当用户提交了表单以后,把网线拔掉,你的代码居然还能起作用,是什么灵异事件。
      

  5.   

     那我要给那三个下拉框赋值 现在怎么赋值啊? 如果只是this.s1.value=model.province  那文本框的值为空啊
      

  6.   


    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 行 32:                     string province = Request.Form[s1.ClientID].ToString() ;
    行 33:                     string city = Request.Form[s2.ClientID].ToString(); 这不对啊
      

  7.   

    我觉得学习web开发,最好不要先用asp.net,会把人带沟里去,然后你还得自己从沟里爬出来。
      

  8.   

    request的任何值服务端都不能更改!你只能从客户端用js改...你能改的只有response值,HTTP是无连接的,每一次request和response都是独立的...也就是说你要想改表单值就必须重新response网页,不要妄想在Request.Form上打主意,Request.Form是上一次request的东西,你能读到它的时候只是个只读快照,它实际已经不存在了...先去学学基础吧,否则你很难理解...
      

  9.   

    经常看到有人问,在asp.net一个页面里操作另一个页面里的控件怎么实现这样无语的问题。
      

  10.   

    你可以告诉他要写一个ajax不停的轮询某个地址.
    然后把控件的值信息写在这个地址.轮询到改变后改变对应的控件值...
    这样就可以烦死他了.不过如果html5的websocket可以普及的话,实现这样的东西也不那么麻烦了.