[英]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.