2008-09-30 54 views
10

是否有任何好的方法讓ASP.NET 2.0在XHTML 1.0 Strict(或Transitional)DTD下驗證?我有興趣在破解HTTP響應的核心之前聽到一些想法。XHTML 1.0嚴格(或過渡)符合ASP.NET 2.0/3.5

一個主要問題是表單標籤自己,這是我從W3C了,當我試圖驗證輸出:

Line 13, Column 11: there is no attribute "name". 
<form name="aspnetForm" method="post" action="Default.aspx" onsubmit="javascript 

該標籤是ASP.NET非常重要的,因爲大家都知道。 Hmmmm。

回答

11

ASP.NET 2.0及以上版本確實可以輸出嚴格(或過渡)XHTML。這將解決你的'沒有任何屬性'名稱''驗證錯誤,等等。要使用此功能,喜歡的東西更新Web.config文件:

<system.web> 
    ... other configuration goes here ... 
    <xhtmlConformance mode="Strict" /> 
</system.web> 

過渡XHTML,使用mode="Transitional"代替。

請參閱MSDN上的How to: Configure XHTML Rendering in ASP.NET Web Sites

2

它可以使用像CSS Adapters這樣的技術來更改ASP.NET控件的輸出。儘管我個人不建議你使用這些開箱即用的軟件,但它可能會給你一些好的解決方案提示。

我通常儘可能避免使用ASP.NET控件,除了那些不會自己生成標記的控件,例如Repeater控件。我會研究ASP.NET MVC框架(構建StackOverflow的內容),因爲它可以100%地控制標記。

+1

Reapter控件是可以隨意使用的,span或tables是你所能得到的,而不是3.5中的ListView。 – craigmoliver 2008-09-30 23:25:41

+0

我沒有3.5的經驗,所以不能評論ListView,但我沒有看到Repeater控件的問題,你可以使用你選擇的任何標籤,並有幾個'子控件'來生成你自己的標記。 – roryf 2008-10-01 00:01:14

+0

查看源代碼 – craigmoliver 2008-10-01 00:35:55

4

你考慮過ASP.NET MVC Framework嗎?如果嚴格的XHTML合規性是一項要求,這可能是一個更好的選擇。你可以更好地控制你的輸出,但是如果你已經習慣了傳統的ASP.NET模型,那麼你將會踏上陌生的領域。