.net NET -如何检查Httpprequest.form是否被调用?

8ehkhllq  于 2023-02-14  发布在  .NET
关注(0)|答案(1)|浏览(115)

我有一个模块,这是一个中间件owa和它必须添加到IIS。它是工作正常。但在某些情况下(后请求)我得到这个错误:

This method or property is not supported after HttpRequest.Form, Files, InputStream, or BinaryRead has been invoked.

这是我的代码:

var context = HttpContext.Current;
var state = context.Request.Form["state"]; // error

我认为这个错误发生时,我的代码不应该读'httprequest.form'。
我的问题是:
是任何方式,我可以知道httprequest.form不应该被读取。(像一个标志或...)

ccgok5k5

ccgok5k51#

当您尝试在读取HttpRequest.Form属性后访问该属性时,会出现您遇到的错误信息。这是因为HttpRequest.Form属性是一次性只读集合,一旦访问它,数据就会被使用。
检查HttpRequest.Form属性是否已被读取的一种方法是检查HttpRequest.HasForm属性,该属性返回一个布尔值,指示窗体集合是否已被访问。
下面是一个例子:

var context = HttpContext.Current;
if (context.Request.HasForm)
{
    var state = context.Request.Form["state"];
}

通过检查HasForm属性,可以避免访问已使用的Form属性。

相关问题