0

xhtml strict dtd を使用し、web.config で xhtmlConformance モードを使用する asp.net Web サイトがあります。ソースで検証するとエラーはゼロですが、URIで検証すると2つのエラーが発生します

属性「名前」はありません

<form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm">

その名前属性がどこから来たのかわかりません。出力されたxhtmlには存在しません。

2 番目のエラーは、viewstate が div でラップされていないと見なされるためです (ラップされている場合でも)。

何が起こっているのかわからない。

4

1 に答える 1

0

属性が生成される理由は、属性を指定しないnameと ASP.NET が自動的に属性を作成するためです。name

MSDNの記事によると:

フォームには一意の名前が必要です。指定しない場合は、ASP.NET によって自動的に割り当てられます。ID プロパティまたは Name プロパティを使用して、フォームの識別子を設定できます。両方が設定されている場合は、ID 属性が優先されます。ただし、Name 属性をプログラムで使用すると、ページの XHTML 準拠が損なわれることに注意することが重要です。XHTML では、要素は名前ではなく ID で識別されます。したがって、一般的に言えば、ID プロパティに依存する方が適切です。

ただし、name属性を削除する方法があります: Use XHTML Fixes。(詳細については、この ASP.NET フォーラム スレッドを参照してください。)

2 番目の<div>エラーについて: ブラウザーからソース コードをコピーして (あなたが書いたソースではありません)、そこに貼り付けてもらえますか? これは、そのエラーの問題を見つけるのに役立ちます。

編集: ASP.NET を XHTML 1.0 Strict として検証することに関するこの質問は役に立つはずです。

于 2011-04-05T20:27:15.517 に答える