【发布时间】:2012-06-17 12:58:40
【问题描述】:
我在 aspx.cs 页面中有一个静态的 webmethod,我想在该方法中使用 Request.Form[] 但不支持并说:
非静态字段需要对象引用。 我如何在该网络方法中使用 Request.Form[](任何替代使用方式)
问候 吉特尼姆
【问题讨论】:
-
您能否更具体地说明为什么该方法需要是静态的?
我在 aspx.cs 页面中有一个静态的 webmethod,我想在该方法中使用 Request.Form[] 但不支持并说:
非静态字段需要对象引用。 我如何在该网络方法中使用 Request.Form[](任何替代使用方式)
问候 吉特尼姆
【问题讨论】:
您不能在静态上下文中使用非静态属性。如果您的方法是静态的,则意味着它不应该依赖于被调用的实例(这里您使用的是 Request,它是 this 的属性 - 您的页面)。
如果您的方法根据您的 POST 数据中的某些内容进行一些计算,那么您应该将其添加为该方法的参数,然后使用 Request.Form["something"] 作为值调用该方法:
public static int MyStaticMethod(string someParameter)
{
//logic involving someParameter
return a value based on the logic above
}
//somewhere in your code-behind
if (MyStaticMethod(Request.Form["something"]) == 0) //something something
【讨论】:
如果您回帖,Request.Form 就有意义。
据我了解,您只需在后面的代码中调用静态函数。此时页面不存在,您也不要完整回帖以填写表格
任何其他使用方式
正确的方法是将数据作为参数发送给函数。
【讨论】: