asp.net2.0据说可以完全符合web标准,但我一旦用到server control好象就不行了.用到textbox 总是有<input name="textbox1" ....> 这个name属性总是自动加上.校验时会有:
'there is no attribute "name" '错误若用到button控件,总是有language="javascript" onclick="__doPostBack(...)"....
这个language属性更是不符合标准的.请问各位兄弟平时是怎么处理这种问题??

解决方案 »

  1.   

    vs2005+asp.net2.0是可以生成符合 xhtml1.0标准的页面的。你说的好像制作的时候漫游指定标准吧
      

  2.   

    没听懂你什么意思
    textbox 转化成html就是input 呀__doPostBack(...)是.net回传激发服务器事件的方法,当然有呀,没有就连接不到服务端了
      

  3.   

    标准有很多个哈。XHTML 1.0 Strict
    XHTML 1.0 Transitional
    XHTML 1.0 Frameset
    HTML 4.01 Strict
    HTML 4.01 Transitional
    HTML 4.01 Frameset
    HTML 3.2
    HTML 2.0
    ISO/IEC 15445:2000 ("ISO HTML")
    XHTML 1.1
    XHTML Basic 1.0
    XHTML-Print 1.0
    XHTML 1.1 plus MathML 2.0
    XHTML 1.1 plus MathML 2.0 plus SVG 1.1
    一般需要自己编写代码时注意
      

  4.   

    估计2.0的标准是以HTML为标准了,主要能完全满足HTML+JS那就已经很不错了,对它期待越多就会失望越多,有些东西太简单了人就傻了,看来我们还需要多学习
      

  5.   

    ASP.NET的服务器控件生成的HTML代码是符合XHTML 1.1标准的。
      

  6.   

    ASP.NET 2.0符合XHTML 1.1标准,这是没问题的,否则它不会敢在文件头写上那样的doctype。TextBox控件生成的input,有name属性很正常,XHTML的Form确实是需要name属性也允许name属性的,否则无法提交。至于Button控件出现language属性的情况我没遇到过,如果Button控件是指服务器端的Button控件的话。但是符合XHTML 1.1并不代表符合Web Standards,前者只是后者的子集,这个你要弄清楚。
      

  7.   

    我都是按html 4.01檢查
      

  8.   

    谢谢各位回答,我指的是,一般来说用到服务器端控件:button控件,都是用来提交表单的.它必然有:onclick="__doPostBack(...)"但是运行时它会自动生成,language="javascript" ;
    这连 XHTML 1.0 Transitional标准都不符合.至于其它控件的name属性,不符合XHTML 1.0 Strict标准. 但符合过渡形的 XHTML 1.0 Transitional因为它同时有值相同的id属性.我自已写的所有HTML代码都符合XHTML 1.0 Strict标准,但只要用到服务器端控件的就没办法了.ASP.NET 2.0 真没办法.你们试试就知道了.加几个控件,再加个button控件来提交表单,language="javascript" 这不符合自已自动设定的XHTML 1.0 Transitional标准.
      

  9.   

    <input type="submit" name="Button1" value="Button" id="Button1" />
    <a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>
    <input type="image" name="ImageButton1" id="ImageButton1" src="" style="border-width:0px;" />Button怎么会有
    onclick="__doPostBack(...)" language="javascript" ;
    啊?我这里是没有的。
      

  10.   

    您终于来了.我用的是服务器端控件.
    <input id="Button1" type="button" value="提  交" name="Button1" runat="server" onserverclick="Button1_ServerClick" enableviewstate="false"/>C#代码内有相应的事件.
    protected void Button1_ServerClick(object sender, System.EventArgs e)运行后会自动生成.
      

  11.   

    运行后会自动生成以下HTML:
    onclick="__doPostBack(...)" language="javascript" ;
      

  12.   

    没了,谢谢.
    原来是.net2003 转换过来的.删了原来的.重安一个button.就没有了
      

  13.   

    name属性依存在.
    加上
    <globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312"/>
    <!-- other elements here -->
        <xhtmlConformance mode="Strict" />
    只去除了.form标签内的name属性.其它input的name属性没改变.
      

  14.   

    input的name属性是必须的,否则,不能通过Request.Form得到值,什么标准都要支持的
      

  15.   

    input的name属性确实是必须有的,在XForm之前相信没有哪个XHTML标准敢把name属性给禁止掉,禁止掉就无法确定根据哪个命名将数据POST到服务器端了。用id取代name是不行的,id必须全文档唯一,而name不行,在提交数据时有些情况下确实需要用到多个input的name相同然后合并数据提交的情况。至于你说的Button输出带有javascript属性,你自己解决了就好。Web Standards不仅仅指XHTML,好包括XHTML是不是仅仅表示语义,而不包含排版信息。例如Menu控件使用table输出就符合XHTML而不符合Web Standards。这时候,你可以用Google搜索"CSS+Friendly+ASP.NET+Control+Adapter",你能找到CSS Friendly ASP.NET Control Adapter的官方网站,那里提供一些ControlAdapter,可以让Menu输出ul,那样就更符合Web Standards了。
      

  16.   

    name属性是必须有的,否则radio就没办法分组。但又不是必须要写的,例如button就不需要写免得把自己的value提交上去。
      

  17.   

    谢谢,这样我就明白了,name少不了.
    所以ASP.NET2.0就是支持XHTML 1.0 Transitional标准.
    如果用:XHTML 1.0 Strict标准.检测时会出现:there is no attribute "name"错误.
      

  18.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">如果用:XHTML 1.0 Strict标准.检测时会出现:there is no attribute "name"错误.我是看了微软的<使用Web标准生成ASP.NET 2.0 Web站点>一文,以为我那儿设置错了.所以才问这个问题.
    http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNETusStan.mspx