刚才看到csdn的博客发布页面,查看源码
发现好多的input 和 checkbox 表单项目和php,asp中的都不一样好奇怪,而且表单项都没有value这个属性.如下:
                            <input id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_chkIsAggregated" type="checkbox" name="ctl00$ctl00$cphContent$cphDoc$EntryEditor1$chkIsAggregated" checked="checked" />
请问一下name属性当中为什么要搞那么长啊?$代表什么意思啊?他们的name值不是固定不变的吗?提交表单如何获取值啊?请指教

解决方案 »

  1.   

    Name已经处理过,用户使用的是Web控件,传到客户端时就解析成那个样子
      

  2.   

    谢谢楼上的,那么value属性呢?不可能所有的value的属性都是在提交表单的时候用js设置吧?
    请您看一下你自己在csdn上的发博文的地方就明白我的意思了
      

  3.   

    value属性可以在后台代码中设置,也可以在前台js代码中设置,注意:在后台代码设置时如果是asp.net控件,一般是设置.Text属性,如果是htmlinput类控件设置.Value属性
      

  4.   

    帮楼主顶, name被客户端解析过了
      

  5.   

    name值对于form提交时,html控件是必须,但是.net本身是通过ID来操作的,而且因为是服务器端控件,所以html源文件中,没有name属性value是对于html控件的,但是你看到的都是服务器端控件,他们使用的都是text属性,但是你可以通过js用value来获取值或者设置值
      

  6.   

    .net 不是用name 来获取表单,根本不用担心由于name的原因害怕表单获取.net 只有id的概念,在获取的时候,只需要服务器控件的id,就能取值。.net 不是没有MVC的概念,但是暂时绝大多数项目还是直接提交给.cs的文件的。
      

  7.   

    asp.net不光只有htmlControls控制,还是WebControls控件哦,比如常用的<input type=text value="" />这个同样可以使用<asp:TextBox id="tb" runat="server" />在提交时,所获取值时就不能用.Value了,而是 tb.Text而且像楼主所说的 <input id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_chkIsAggregated" type="checkbox" name="ctl00$ctl00$cphContent$cphDoc$EntryEditor1$chkIsAggregated" checked="checked" /> 
    是在浏览网页时,浏览器自动生成的,这个不是人为写上的
      

  8.   

    说白了就一句话
    php通过$_POST["name属性"]这样取值
    .net通过id this.id.Text或者request.form["name"]
      

  9.   

    PHP不知道好玩不, 呵呵。
      

  10.   

    这个name是.net自动解析后生成的,并非原来设置的name值。仅仅是为了防止生成重复的ID
      

  11.   

    asp.net不光只有htmlControls控制,还是WebControls控件哦,比如常用的 <input type=text value="" />这个同样可以使用 <asp:TextBox id="tb" runat="server" />在提交时,所获取值时就不能用.Value了,而是 tb.Text而且像楼主所说的 <input id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_chkIsAggregated" type="checkbox" name="ctl00$ctl00$cphContent$cphDoc$EntryEditor1$chkIsAggregated" checked="checked" />
    是在浏览网页时,浏览器自动生成的,这个不是人为写上的