【问题标题】:W3C validation for server-side form tag服务器端表单标签的 W3C 验证
【发布时间】:2012-04-13 00:08:20
【问题描述】:

我在 w3.org 中检查了我的网站 html 验证并收到此错误

元素表单上属性操作的错误值:必须为非空。

但我的表单是asp.net服务器端表单,无法设置动作属性。

我该如何解决这个错误?

【问题讨论】:

    标签: asp.net html w3c-validation


    【解决方案1】:

    这是一篇旧文章,但为了将来在 ASP.NET 中参考,可以执行以下操作以避免空白操作属性:

    <form action="#" runat="server">
    

    这将通过 W3C 进行验证,并且不需要您进行任何特殊编码来检测您当前所在的页面 url。

    【讨论】:

    • 其实这是有问题的。如果您尝试使用 action="#" 解决方案发布帖子,则会收到 HTTP 动词服务器端错误。
    • @abegosum 我在 ASP.NET 中使用这个解决方案已经有一段时间了,没有您报告的问题,知道为什么会发生这种情况吗?
    • 可能是 IIS 的版本或设置有问题(我怀疑这是防止某些类型的脚本注入的安全设置)?你的页面有回发吗?
    • @abegosum 是的,回发也可以。也许您应该列出您的设置,我可以尝试重新创建您的错误?
    【解决方案2】:
    form1.Action = Request.Url.AbsoluteUri;
    

    这对我有用

    【讨论】:

      【解决方案3】:

      省略属性action。根据 HTML5 草案,它不是必需的,但如果存在,它的值必须是非空的。参考:WHATWG HTML5 草案,description of action attribute

      【讨论】:

      • 在 ASP.NET 中你不能省略 action 属性,如果你编写
        它将呈现为
        ;它就是它的工作方式。请参阅我的回复以获得更好的解决方案。
      • 每次我学到一些关于 ASP.NET 的新东西时,我都会更讨厌它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多