【问题标题】:XHTML 1.0 Strict (or Transitional) compliance in ASP.NET 2.0/3.5ASP.NET 2.0/3.5 中的 XHTML 1.0 严格(或过渡)合规性
【发布时间】:2008-09-30 23:11:13
【问题描述】:

有没有什么好的方法可以让 ASP.NET 2.0 在 XHTML 1.0 严格(或过渡)DTD 下进行验证?在破解 HTTP 响应的核心之前,我很想听听一些想法。

一个主要问题是表单标签本身,这是我尝试验证时从 W3C 得到的输出:

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

众所周知,该标记对于 ASP.NET 来说是非常基础的。嗯。

【问题讨论】:

    标签: asp.net xhtml-1.0-strict


    【解决方案1】:

    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

    【讨论】:

    • 我不确定我做错了什么,但它似乎没有做任何事情。我使用的是 .Net 3.5,我将此配置标记设置为所有可能的值,并且我的元标记仍以结束 呈现。有什么我能做的吗?
    【解决方案2】:

    你考虑过ASP.NET MVC Framework吗?如果要求严格的 XHTML 合规性,这可能是一个更好的选择。您可以更好地控制自己的输出,但如果您已经习惯了传统的 ASP.NET 模型,那么您将涉足陌生领域。

    【讨论】:

    • Beta 对于我的生产应用程序来说有点冒险(不适用于 StackOverflow)。此外,该应用程序已经编写完毕。
    • web 控件不是为 xhtml 验证而构建的。它们是为了方便而建造的。要么使用 CSS 插件,要么重写你的 UI。它是一种粘性药丸,但最好与大量酒精一起服用。
    • ASP.NET MVC 1.0 于 2009 年 3 月 17 日发布。工作目前是 2.0 版本。
    【解决方案3】:

    可以使用CSS Adapters 等技术更改 ASP.NET 控件的输出。虽然我个人不建议您开箱即用,但它可能会为您提供一些好的解决方案的提示。

    我通常尽可能避免使用 ASP.NET 控件,除了那些不自己生成标记的控件,例如 Repeater 控件。我会研究 ASP.NET MVC 框架(StackOverflow 是基于什么构建的),因为它可以让您 100% 控制标记。

    【讨论】:

    • Reapter 控件太棒了,span 或tables 就够了,看看3.5 中的ListView 吧。
    • 我没有使用 3.5 的经验,因此无法对 ListView 发表评论,但我没有看到 Repeater 控件的问题,您可以使用您选择的任何标签并拥有多个“子控件”也可以生成您自己的标记。
    • 也许你使用它的方式和我不同,但我从来没有遇到过标记问题,因为它不会生成任何东西!
    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2013-03-23
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多