繁体   English   中英

C#错误:非静态字段需要对象引用

[英]C# error : An object reference is required for the non-static field

我已经找到了许多解决方案,但对我来说都没有意义。 基本上,我正在使用jQuery AJAX提交表单,并尝试更新表中已有的行,但出现错误:非静态字段需要对象引用。 如果我更改了“ txtContactLastEdit.Text;” 改为“新名称”; 一切顺利。 仅当我引用表单上的txt字段时。 有任何想法吗? 谢谢!

[WebMethod]
public static string updateProject(int id)
{
    using (dbPSREntities5 myEntities = new dbPSREntities5())
    {
        // Query for a specific customer. 
        var proj =
            (from tbProject in myEntities.tbProjects
             where tbProject.ProjectID == id
             select tbProject).First();

        // Change the name of the contact.
        proj.ProjectContactLastName = txtContactLastEdit.Text;

        // Ask the DataContext to save all the changes.
        myEntities.SaveChanges();

        var myResult = "success";

        return myResult;

    }
}

您不能访问静态方法内的页面控件。

您可能从客户端调用此方法,所以一种替代方法是从客户端发送txtContactLastEdit.Text并更改您的函数以接受该参数。

[WebMethod]
public static string updateProject(int id, string textBoxValue)
{
  // your code.
}

尝试将文本框的值传递给static方法

WebMethod]
public static string updateProject(int id, string contactName)
{
    ....

        // Change the name of the contact.
        proj.ProjectContactLastName = contatcName;


}

在静态方法内部,不能使用在其中定义了静态方法ID的类的实例变量,而txtContactLastEdit是TextBox类型的Page的实例变量。 因此,假设静态方法属于一个名为Project的类,则可以从页面的某个位置调用它。

int projectID = 1;
Project.updateProject(projectID,txtContactLastEdit.Text);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM