我有一个asp.net网站,它正在使用xhtml strict dtd&在web.config中使用xhtmlConformance模式。 当通过源验证时,我得到零错误,但是当我通过URI得到2个错误时
没有属性“name”
<form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm">
我不知道该name属性来自哪里。它在输出的xhtml中不存在。
第二个错误是因为它将视图状态视为未包含在div中(即使它是)。
不确定发生了什么。
答案 0 :(得分:0)
生成name
属性的原因是,如果您未指定属性,则ASP.NET会自动创建name
属性。
根据MSDN article:
表单必须具有唯一名称。 一个是 由ASP.NET自动分配 你没有指定一个。你可以设置 表单的标识符使用 ID或Name属性。如果两者都设置了, ID属性优先。它 但重要的是要注意,任何 以编程方式使用Name属性 妥协了XHTML的合规性 这页纸。在XHTML中,元素是 由ID而不是名称标识。所以 一般来说,你会更好 依赖于ID属性。
但是,有一种方法可以删除name
属性:使用XHTML Fixes。 (有关详细信息,请参阅this ASP.NET forum thread。)
关于您的第二个<div>
错误:您可以从浏览器复制源代码(不是您编写的来源)并将其粘贴到那里吗?这将有助于我们找到该错误的问题。
编辑:This question about validating ASP.NET as XHTML 1.0 Strict应该有用。