检查是否在不使用 Request.Form 对象的情况下提交了表单?

Check if Form is Submitted Without Using the Request.Form Object?

有没有办法在不检查 Request.Form 对象的情况下确定是否提交了带有 id/name X 的表单?

我问的原因是因为我有一些通用代码(在每个页面加载时执行)检查 login/logout 表单是否已提交,这与某些文件上传页面冲突(因为它需要使用 Request.binaryRead - 使用 Request.Form 后无法使用)。

人们通常如何处理这种情况?

这里有同样的问题,但没有好的答案。 Access form post Data without request.Form

enctype 属性和 HTML 表单元素影响请求的 Content-Type header,它允许您确定提交的表单类型。
所以,你只需要检查 HTTP_CONTENT_TYPE 服务器变量。

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    'a POST request was made

    If InStr(1, Request.ServerVariables("HTTP_CONTENT_TYPE"), "multipart", vbTextCompare) = 1 Then
        'Content-Type header starts with multipart
        'possible file upload form (<form method=post enctype=multipart/form-data ...)
        'using Request.BinaryRead is OK
    Else
        'ordinary HTML form
        'using Request.Form is OK
    End If
End If