【问题标题】:Request.Form[] is not working in Static Method in asp.netRequest.Form[] 在 asp.net 的静态方法中不起作用
【发布时间】:2012-06-17 12:58:40
【问题描述】:

我在 aspx.cs 页面中有一个静态的 webmethod,我想在该方法中使用 Request.Form[] 但不支持并说:

非静态字段需要对象引用。 我如何在该网络方法中使用 Request.Form[](任何替代使用方式)

问候 吉特尼姆

【问题讨论】:

  • 您能否更具体地说明为什么该方法需要是静态的?

标签: asp.net methods static


【解决方案1】:

您不能在静态上下文中使用非静态属性。如果您的方法是静态的,则意味着它不应该依赖于被调用的实例(这里您使用的是 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

【讨论】:

    【解决方案2】:

    如果您回帖,Request.Form 就有意义。

    据我了解,您只需在后面的代码中调用静态函数。此时页面不存在,您也不要完整回帖以填写表格

    任何其他使用方式

    正确的方法是将数据作为参数发送给函数。

    【讨论】:

    • 我只想访问该静态方法中的 div id,但问题是,该 div 没有 runat=server 标记。我如何在静态的 webmethod 中访问该 div id ..蚂蚁还有其他方法吗..?
    • @JeetNim 你不能。您可以做的是返回您想要添加到该 div 的值,并使用 javascript 添加它。如果您赢得发送,则相同,使用 javascript 获取该 div 的 innerHTML 并将其作为参数发送给该函数。
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    相关资源
    最近更新 更多